@Autowired和@Resource两个注解有什么区别呢?
下文笔者讲述@Autowired和@Resource注解的区别说明,如下所示
@Autowired和@Resource注解的简介
@Autowired和@Resource注解都使用在:
构造函数、Setter方法、成员变量上
都可用于装配Bean
@Autowired和@Resource区别
@Autowired:
默认按类型装配(此注解是Spring定义的注解)
@Resource:
JDK1.6支持的注解
默认按照名称进行装配
@Autowired:
默认情况下必须要求依赖对象必须存在
如果允许null值
可以设置它的required属性为false
如:
@Autowired(required=false)
当我们想使用名称装配可以结合@Qualifier注解进行使用
@Autowired
@Qualifier("baseDao")
private BaseDao baseDao;
Resource名称使用name属性进行指定
如果没有指定name属性
当注解写在字段上时
默认取字段名
按照名称查找
如果注解写在setter方法上默认取属性名进行装配
当找不到与名称匹配的bean时才按照类型进行装配
但是需要注意的是
如果name属性一旦指定
就只会按照名称进行装配
@Resource(name="baseDao")
private BaseDao baseDao;
其实@Autowired + @Qualifier("BWM") == @Resource(name="BWM")
当一个接口只有一个实现类
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


