首页   快速返回

Autowired和Resource注解的区别     所属分类 spring
@Autowired注解 是 spring 定义的
@Resource 是 JSR-250规范定义的注解 其他的还有 @PostConstruct  @PreDestroy

@Resource的作用与@Autowired 一样, @Autowired默认按byType自动注入,@Resource默认按 byName自动注入


@Resource有两个重要属性 name和type,
Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。

  @Resource装配顺序
  1. 如果同时指定了name和type,则从上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;



2、 @Autowired默认按类型装配

@Autowired(required=false)  允许注入组件为 null


@Autowired
@Qualifier("xxxBean")
private XXXBean yyyBean;

Qualifier 指定 beanName

default-autowire="byName"
自动装配byName

@Primary 可以用于消除歧义 匹配多个bean时,优先使用@Primary注解的bean


推荐使用 @Resource注解在字段上,可以不写setter方法,J2EE自带,减少与spring的耦合。

上一篇     下一篇
教师节最美的诗歌送给最美的你

一个牛逼项目的上线过程

如何防止表单重复提交

springIOC容器相关注解

springboot简单例子

利用shell命令分析java线程堆栈