IOC:指程序中对象的获取方式发生了反转,从最初的new方式创建,转变为第三方框架创建,注入(DI),它降低了对象之间的耦合度,是spring框架的基础与核心。IOC为一种控制反转的思想,DI是实现IOC的主要技术途径。
DI:依赖注入,将一起工作具有关系的对象,通过构造方法参数或方法参数传入建立关联。
DI实现方式:
1.构造器注入
2.setter注入
3.接口注入(不常用)
创建应用对象之间协作关系的行为称为装配,也是DI的本质
spring装配Bean的三种主要方式:
1.组件扫描与自动装配:
javaconfig:需要显示配置类,加上注解@configuration @componentscan(启动组件扫描)
xml:启动组件扫描<context:component-scan base-pakeage="">
声明bean:@component注入bean:@autowird
2.javaconfig:配置类加上注解@configuration ,需要声明的类加上注解@Bean
3.xml:<bean id="example" class="com.sun.example"> 注入类型构造器 <constuctor-arg ref/> 注入具体的值构造器: <constuctor-arg value/>
补充:当需要进行参数注入为null时<property name=""><null/></property>
springIOC底层通过反射机制实现https://blog.csdn.net/tch918/article/details/36010163
书籍:(spring in action)