IoC
什么是 IoC?
例如在类上添加 @RestController 和 @Controller 注解,就是把对象交给 Spring 管理。Spring 框架启动时就会加载该类。把对象交给 Spring 管理,就是 IoC 思想。
IoC:Inversion of Control(控制反转),也就是说 Spring 是一个'控制反转'的容器。
什么是控制反转呢?也就是控制权反转。什么的控制权发生了反转?获得依赖对象的过程被反转了。也就是说,当需要某个对象时,传统开发模式中需要自己通过 new 创建对象,现在不需要再进行创建,把创建对象的任务交给容器,程序中只需要依赖注入 (Dependency Injection, DI) 就可以了。 这个容器称为:IoC 容器。Spring 是一个 IoC 容器,所以有时 Spring 也称为 Spring 容器。
引入
传统实现思路
我们的实现思路是这样的: 先设计轮子 (Tire),然后根据轮子的大小设计底盘 (Bottom),接着根据底盘设计车身 (Framework),最后根据车身设计好整个汽车 (Car)。这里就出现了一个'依赖'关系:汽车依赖车身,车身依赖底盘,底盘依赖轮子。
[图:传统汽车组件依赖关系]
代码实现
public class Main {
public static void main(String[] args) {
Car car = new Car(21);
car.run();
Car car2 = new Car(17);
car2.run();
}
}
// 汽车
class Car {
private Framework framework;
public Car(int size) {
framework = new Framework(size);
System.out.println("framework init...");
}
public void run() {
System.out.println("car run...");
}
}
// 车身
{
Bottom bottom;
{
bottom = (size);
System.out.println();
}
}
{
Tire tire;
{
tire = (size);
System.out.println();
}
}
{
size;
{
System.out.println( + size);
}
}


