Spring
控制翻转IOC 可以理解为一个类, 依赖注入可以理解为一个对象
控制反转(IoC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。
依赖注入的2种方法:
1、构造函数依赖注入
2、setter方法依赖注入
自动装配分为3种:(
1、byName
2、byType
使用byType进行自动装配时,是利用Java的反射机制获取测试类中的set方法的参数类型,寻找此接口类型的实现类或子类,找到后将其首字母小写与IOC容器中的beanId进行匹配,匹配成功后则调用set方法进行依赖注入。因此,byType自动装配与方法名无关,与属性名无关,与set方法的参数类型有关。
3、由构造函数自动装配
@Resource
默认按照byName方式注入,如果找不到则按照byType方式注入
@Resource放在属性上,如果不写对应的set方法,则程序在运行时,Java的反射机制会自动的帮我们生成一个名为set方法
@Resource放在set方法上,按照set方法的名称(去掉set后将其首字母小写)作为beanId进行注入。例如,下面的setHelloWorld123方法对应的beanId为helloWorld123
@Resource
public void setHelloWorld123(HelloWorld helloWorld) {
this.helloWorld = helloWorld;
}
同时使用xml配置bean和注解配置bean,如果beanId相同,则IOC容器中只会有一个bean
@Autowired
默认按照byType方式注入,如果存在多个Type相同的bean,则按照byName方式注入
spring中如何xml配置文件和注解同时存在,xml配置文件的优先级高于注解