控制反转IOC(依赖注入DI)
通常当有父类引用指向子类对象时,我们会new一个子类实例,但是IOC的思想是我们不去自己new而是从容器中注入一个对应的子类实例,
而我们注入的那个是谁,这是由容器决定的。例如:搞对象时应该是自己找,我们给它变成了由父母去决定
注入类型
通常我们有三种注入类型:1)接口注入(基本不用,我个人是没用过)
2)构造注入:在构造函数中去注入(个人用的比较少)
3)set注入:在接受注入的类中定义一个set方法,并在配置中定义需要注入的元素(普遍使用)
自动装配相关注解
1)在实类注入的属性的set方法上或属性声明上加@Autowired,默认按byType从容器中找一个对应类型的bean实例注入进来,
加上@Qualifier("bean名")可以指定该名字该类型的实例
加上@Required则表示必须注入,null则编译报错
2)将实类注入到容器中有四种方式,基本上没区别只是为了便于区分:
@Component,注解为组件
@Repository ,数据持久层层
@Service,业务逻辑层
@Controller,控制层
3)将实例从容器中注入还可以在属性的set方法上用@Resource,默认按byName,找不到按byType