@Resource和@AutoWired的区别
@Resource的注入方式(4种)
1.指定name和type:通过name找到唯一的bean,找不到抛出异常;如果type和字段类型不一致,也会抛出异常。
如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2.指定name:通过name找到唯一的bean,找不到抛出异常。
指定name:通过name找到唯一的bean,找不到抛出异常。
3.指定type:通过type找到唯一的bean,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException。
指定type:通过type找到唯一的bean,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException。
4.不指定name 和type:通过字段名作为key去查找,找到则赋值;找不到则再通过字段类型去查找,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException
不指定name 和type:通过字段名作为key去查找,找到则赋值;找不到则再通过字段类型去查找,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException
@Autowired
1.@Autowired是Spring定义的注解
2.@Autowired默认按byType自动装配
3.@Autowired如果使用byName,需要使用@Qualifier一起配合。
4.@Autowired能够用在:构造器、方法、参数、成员变量和注解上
@Resource
*@Resource
1.@Resource是JSR-250定义的注解。
2.@Resource默认byName自动装配。
3.@Resource如果指定了name 则用byName自动装配,如果指定了type,则用byType自动装配。
4.,而@Resource能用在:类、成员变量和方法上