Spring中@Autowired和@Resource的区别
来源:互联网 发布:图片动态特效制作软件 编辑:程序博客网 时间:2024/05/19 13:56
在Spring中@Autowired和@Resource都是用来自动注入,但两个注解有很大的区别,下面就来分析一下二者的差异:
@Autowired
2.当注入一个实例时,跟接口类似,如果这个实例在XML配置文件中声明了两个不同的Bean,那么Spring也会抛出异常。 解决办法 @Autowired配合@Qualifier来使用,通过@Qualifier来指明要注入Bean的name。
@Resource
如果没有指定name属性, 那就按照要注入对象的字段名查找依赖对象;
如果按默认名称查找不到依赖对象, 那么就按照类型查找。 注入类型 既可以注入一个接口,也可以直接注入一个实例
示例代码:
1.创建一个测试接口TestInterface:
public interface TestInterface { void say();}
2.创建TestInterface的两个实现类GoTest1和GoTest2:
@Componentpublic class GoTest1 implements TestInterface{ public void say() { System.out.println("hello world"); }}
@Componentpublic class GoTest2 implements TestInterface{ public void say() { System.out.println("hi world"); }}
@Component中没有指明Bean的名字,默认为首字母小写的类名(Bean的name分别默认为goTest1、goTest2)。
3.创建测试类MyTest:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "file:src/main/webapp/WEB-INF/spring-mvc.xml")@WebAppConfigurationpublic class MyTest{ @Resource TestInterface goTest1; @Test public void say2() { goTest1.say(); }}
在这里@Resource没有指定name,默认为根据字段名(在这里字段名为goTest1)查找对象,会查找匹配到Bean的名字为goTest1的实现类,也就是GoTest1类。
输出结果为:hello world
阅读全文
0 0
- 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 注释 @Autowired 和@Resource 的区别
- Spring 注解 @Resource和@Autowired的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注释 @Autowired 和@Resource 的区别
- Spring 注释 @Autowired 和@Resource 的区别
- spring 注解@Resource 和 @Autowired的区别
- ADO,OLEDB,ODBC,DAO的区别
- javaseday22补充(file file的常见方法 遍历文件夹 后缀过滤器 )
- 流媒体开发: RTP协议全解析(H264码流和PS流)
- java语言实现:写一个函数,使字符串倒序
- Spring Boot全局支持CORS(跨源请求)的配置方法
- Spring中@Autowired和@Resource的区别
- Linuxnotes: bash shell1
- SLAM学习--非线性优化
- springboot 使用CGLib 方式实现AOP代理
- ActiveMQ 的安装与使用(单节点)
- 6.表格
- linux下如何利用gdb调试汇编代码
- Core 2.0 的dll实时更新、https、依赖包变更问题及解决
- cassandra 获取int型数据问题