都是用来装配Bean的注解。都可以写在字段上,或写在setter方法上。

@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。如:

publicclass TrayServiceImpl {

// 下面两种@Autowired只要使用一种即可

//这种方法是只按照byType注入

@Autowired

private TrayDao trayDao;// 用于字段上

@Autowired

public void setTrayDao(TrayDao trayDao) {// 用于属性的方法上

this.trayDao = trayDao;

}

}

或者

publicclass TrayServiceImpl {

//这种写法是先byType 注入,如果是null值,在byName注入

@Autowired  @Qualifier("trayDao")

private TrayDao trayDao;

}

Autowried是Spring提供的注解,而Resource是J2EE提供的注解。Resource有两个属性,name和type,resource会把name作为bean的名称,type作为bean的类型。

使用@Resource 注解转配Bean的顺序:

1.如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常(异常信息:找不到"bean"的声明);

2.如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常;

3.如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常;

4.如果既没有指定name,又没有指定type,则自动按照byName方式进行装配(见2);如果没有匹配,则回退为一个原始类型(TrayDao )进行匹配,如果匹配则自动装配;

ps:个人推荐使用@Resource注解,这个注解是属于J2EE的,减少了与spring的耦合。

作者:白首倾盖
链接:https://www.jianshu.com/p/5c5715d4ed3d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最新文章

  1. DOS命令解释程序的编写
  2. AceAdmin In MVC之控件
  3. 发布WebService到IIS和调用WebService
  4. 【HDU2795】Billboard(线段树)
  5. 微信红包API接口(PHP)
  6. 解决"应用程序无法启动,因为应用程序的并行配置不正确"问题
  7. map内置函数、lambda表达式、快捷生成想要的列表、filter内置函数
  8. 迅为IMX6Q PLUS开发板烧写Android6.0系统方法
  9. ubuntu自带截图工具--方便好用(转)
  10. Tools - 负载性能测试工具JMeter
  11. RESTful 架构详解
  12. 人人开源分模块,非原生html报错,很难查找问题所在,有vue语法
  13. xenserver开启虚拟机时提示找不到存储介质,强制关闭和重启都没用
  14. ADO与ADO.Net
  15. 【贪心】PAT 1033. To Fill or Not to Fill (25)
  16. 怎么使用 ab.exe 测试多个url。 how to use ab.exe test many url
  17. Windows Embedded Compact 7网络编程概述(上)
  18. Git删除和恢复文件
  19. Python时间time模块介绍
  20. C 语言文件拷贝

热门文章

  1. LockSupport源码分析
  2. vmware fusion nat网络模式设置固定ip
  3. requests库 代理
  4. LUA拾翠
  5. 吴裕雄--天生自然ORACLE数据库学习笔记:SQL语言基础
  6. 【原】python常用模块
  7. MYSQL 查询指定日期后的15天
  8. 使用mvn deploy命令将本地jar包上传到maven私服
  9. Git远程分支代码强制回退&Tag添加
  10. JAVA--文件内容属性替换