@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") 当一个接口只有一个实现类
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。