Spring中@Autowired和@Resource区别
来源:互联网 发布:php计算器代码 编辑:程序博客网 时间:2024/06/10 19:47
Spring可以基于注解方式配置并注入依赖。在Java代码中使用@Resource或者@Autowired注解方式注入。
1。 @Resource:
1)默认按照名称装配注入,只有当找不到与名称name匹配的bean时才会按照类型Type注入。
2)@Resource注解由J2EE提供,包名是javax.annotation.Resource,需要导包,但是Spring支持该注解的注入。
3)@Resource可以书写标注在字段或者该字段的setter方法上面,
4)@Resource装配的顺序:
1》如果同时指定name和type,则从spring上下文中找到唯一匹配的bean进行装配,找不到就抛出异常。
2》如果指定name,则从上下文中查找名称id匹配的bean进行装配,找不到则抛出异常。
3》如果指定type,则从上下文中找到类似匹配的唯一bean进行装配,唯一意味着一,不能多或没有,否则都会抛出异常。
4》如果没有type也没有name,则自动按照byName进行装配;如果没有匹配就回退原始类型匹配,如果匹配就自动装配。
举例:
1)UserServiceImpl.java
public class UserServiceImpl { // 下面两种@Resource只要使用一种即可 @Resource(name="userDao") private UserDao userDao; // 用于字段上 @Resource(name="userDao") public void setUserDao(UserDao userDao) { // 用于属性的setter方法上 this.userDao = userDao; }}
2。@Autowired
1)默认是按照类型Type装配注入的,如果需要按照名称装配注入,需要结合@Qualifier一起使用,
2)@Autowired可以书写标注在字段或者该字段的setter方法上面,
3)@Autowired是由spring提供,需要导入包org.springframework.beans.factory.annotation.Autowired,故减少系统对spring的依赖建议使用,
举例:
1)UserServiceImpl.java
public class UserServiceImpl { // 下面两种@Autowired只要使用一种即可 @Autowired private UserDao userDao; // 用于字段上 @Autowired public void setUserDao(UserDao userDao) { // 用于属性的方法上 this.userDao = userDao; }}
3。@Qualifier:
可与Autowired一起使用,如果@Autowired需要按照名称装配。
举例:
public class UserServiceImpl {//联合使用**@Autowired@Qualifier("userDao")**private UserDao userDao;
}
- spring中@autowired和@resource的区别
- Spring中@Autowired和@Resource区别
- Spring中@Autowired和@Resource的区别
- Spring @Autowired和@Resource区别
- spring中@Resource和@Autowired的区别是什么?
- Spring中@Autowired注解和@Resource注解的区别
- Spring注解中autowired和resource的区别。
- Spring中@Autowired注解和@Resource注解的区别
- Spring中 @Autowired 与 @Resource 的区别
- Spring中@Autowired与@Resource的区别
- [Spring] @AutoWired @Resource 区别
- spring @Resource @Autowired 区别
- Spring注解:@Autowired和@Resource的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注解 @Resource和@Autowired的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注释 @Autowired 和@Resource 的区别
- MySQL新建用户,及设定访问权限
- linux添加用户、权限
- Mac中Jenkins自动打包上传fir的配置流程(从零开始)二
- 写个python脚本下载并解压 MNIST 数据集(1)
- hdu5787 数位DP
- Spring中@Autowired和@Resource区别
- Android7.0中文文档(API) -- Switch
- 表格的增删 JaveScript之DOM实例
- #217. 上升序列
- jbpm-6.3.0.Final-installer-full在Windows上的部署、数据库由H2切换为MySql、Linux上的部署全过程
- 片上处理器与多核系统
- 自定义dialog(仿照APP启动时的dialog广告页面)
- C++的代理类
- javase基础知识总结