@Resource和@Autowired有什么区别?
@Autowired 根据类型注入
@Resource 默认根据名字注入,其次按照类型搜索
@Autowired @Qualifie(“userService”) 两个结合起来可以根据名字和类型注入,等同于@Resource
总结如下:
@Autowired默认按byType自动装配,而@Resource默认byName自动装配。
@Autowired只包含一个参数:required,表示是否开启自动注入,默认是true。而@Resource包含七个参数,其中最重要的两个参数是:name 和 type。
@Autowired如果要使用byName,需要使用@Qualifier一起配合。而@Resource如果指定了name,则用byName自动装配,如果指定了type,则用byType自动装配。
@Autowired能够用在:构造器、方法、参数、成员变量和注解上,而@Resource能用在:类、成员变量和方法上。
@Autowired是spring定义的注解,而@Resource是JSR-250定义的注解。