关于IOC和DI

时间:2024-09-25 08:36:32

IoC (Inverse of Control)即控制反转。是指将原来程序中自己创建实现类对象的控制权反转到IOC容器中。只需要通过IOC获了对象的实例,将IOC当成一个黑盒子、工厂、容器。

spring提供ioc容器,对 bean进行实例化。使用bean时候从容器中取。

IOC控制反转,将对象的创建权反转到了spring容器中。

Spring在创建一个类的实例时,如果这个类的里面依类型赖其他的引用,那么会自动将其引用的类型的类先实例化再注入到该实例里面

Spring的IOC 控制反转

可以想象成一个大的Map

这个map中Key值就是Spring配置文件中,bean标签的id 值对应的就是具体实现类的全类名 class

根据反射原理 Class.forName(class).newInstance 生成该bean

如该对象中还有其他POJO 则根据property标签中的name 取map中name对应的对象,然后反射构造一个set方法,执行set 将bean注入