Author:老九
计算机专业
可控之事 沉重冷静 不可控之事 乐观面对
85180586@qq.com
☺️
❓ ❤️ ☕️ ❗️
————————————————
版权声明:本文为CSDN博主「浦上青天」的原创文章
- Springboot的优点
- Spring是什么?
- 什么是容器?
- 什么是IoC?
- 传统开发代码
- IoC代码
- IoC优点
- DI是什么?
- IoC和DI的关系
知识点 Springboot的优点
- 无需配置Tomcat,点击运行按钮就可以运行项目,Boot内置了Web容器
- 快速添加外部jar包
- 快速发布项目
- 对象自动装装配
- Spring是SpringFramework的一个简称,Spring是包含了众多工具方法的IOC容器,说的就是对象的创 和销毁的权力都交给Spring来管理。它本身又具备了存储对象和获取对象的能力
- List/Map就是数据存储数据
- Tomcat是Web容器(所有基于HTTP协议,反映到后端,能做出响应反馈的东西)
- Spring的容器(Spring的最核心的功能):1.将对象存入到容器2.从容器中取出对象
- IoC=inversion of control,翻译的意思是控制反转,控制的是程序中一个一个的类,反转是类的声明周期不由开发者来控制了,而是交给SpringIoc容器来控制
假如我们现在要造一辆车
汽车依赖车身(整个车骨),车身依赖底盘,底盘依赖轮胎
传统的程序开发
public class CarDemo {
public static void main(String[] args) {
//创建一辆车并启动
Car car = new Car();
car.run();
}
static class Car{
public void run(){
//依赖车身
Framework framework = new Framework();
framework.init();
}
}
static class Framework{
public void init() {
Bottom bottom = new Bottom();
bottom.init();
}
}
static class Bottom{
public void init() {
Tire tire = new Tire();
tire.init();
}
}
static class Tire{
private int size = 15;
public void init() {
System.out.println("轮胎尺寸"+size);
}
}
}
- 但传统开发的问题:个性化需求的诞生,人们需要不同尺寸轮胎的车,所以我们需要先改造轮胎类,但改造轮胎类的时候,它的上层依赖类就会报错,因此,传统开发当底层的类被修改时,那么整个调用类的所有类都需要被修改,此现象就叫做代码的耦合问题
public class IoCCarDemo {
public static void main(String[] args) {
Tire tire = new Tire(115,"hongse");
Bottom bottom = new Bottom(tire);
Framework framework = new Framework(bottom);
Car car = new Car(framework);
car.init();
}
static class Car{
private Framework framework;
public Car(Framework framework){
this.framework = framework;
}
public void init(){
framework.init();
}
}
static class Framework{
private Bottom bottom;
public Framework(Bottom bottom){
this.bottom = bottom;
}
public void init(){
bottom.init();
}
}
static class Bottom{
//接收注入的轮胎对象
private Tire tire;
public Bottom(Tire tire){
//注入下层依赖对象
this.tire = tire;
}
public void init(){
tire.init();
}
}
static class Tire{
private int size;
private String color;
public Tire(int size,String color){
// 实现了尺寸的自定义
this.size = size;
this.color = color;
}
public void init(){
System.out.println("轮胎尺寸:"+size);
System.out.println("轮胎颜色:"+color);
}
}
}
IoC创建类的顺序:Tire(轮胎)->Bottom(底盘)->Framework(车身)->Car
IoC优点相比于传统开发
- 创建类的顺序发生了改变(反转)
- 底层调用类发生改变后,IoC模式整个调用链上的代码是无需修改的,实现了类与引用类的解耦
- 之前如果要使用依赖类,需要自己创建并管理类的生命周期,IoC无需自己管理对象的生命周期
- DI是Dependency Injection的缩写,依赖注入 的意思
- 依赖注入是一种具体的实现技术,在IoC容器启动的时候,动态将对象注册到容器中的一种手段,在具体的情景中,在创建当前类的时候,动态的将当前类的依赖对象注入进来的过程就是依赖注入
- IoC是控制反转,它是一种设计思想。DI是控制反转,它是具体的实现手段。
先赞后看,养成习惯!!!^ _ ^♥♥♥
每天都更新知识点哦!!!
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!



