zoukankan      html  css  js  c++  java
  • @Autowired和@Resource

    @Autowire自动注入找bean

    Autowired和Qualifier标签: 1.通过@Autowired标签可以让Spring自动的把属性需要的对象找出来,并注入给该属性。 2.第三方程序:Spring3.0之前,需要手动配置@Autowired解析注解程序,Spring就会自动的加入针对@Autowired标签的解析程序。从Spring3.0开始,可以不再需要改配置了。 <context:annotation-config /> 在web的开发的时候,需要手动添加上. 3.@Autowired标签贴在字段或者setter方法上。 4.@Autowired可以同时为一个属性注入多个对象。 public void setXxx(OtherBean1 other1,OtherBean2 other2) {} 5.使用@Autowired标签可以注入Spring内置的重要对象,比如BeanFactory,ApplicationContext。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class SpringTest { @Autowired private ApplicationContext ctx; } 6.默认情况下@Autowired标签必须要能找到对应的对象,否则报错。不过,可使用required=false来避免该问题:@Autowired(required=false) 7.@Autowired找bean的方式: 1)、首先按照依赖对象的类型找,如果找到则使用setter方法或者字段直接注入; 2)、如果在Spring上下文中找到多个匹配的类型,再按照名字去找,如果没有匹配则报错; 3)、可以通过使用@Qualifier("otherBean")标签来规定依赖对象按照bean的id+类型去找;

    先根据类型找,找到后通过setter注入,如果找到多个再根据名字找,如果名字找不到,可以加上@Qualifier指定名字去找

    @Resource

    1,@Resource标签是JavaEE规范的标签;

    2,@Resource标签也可以作用于字段或者setter方法;

    3,也可以使用@Resource标签注入一些spring内置的重要对象,比如BeanFactory.ApplicationContext;

    4,@Resource必须要求有匹配的对象;

    5,<context:annotation-config>既引入了@Autowired标签的解析器,也引入了@Resource的解析器;

    6,@Resource标签找bean的方式: 1),首先按照名字去找,如果找到,就使用setter或者字段注入; 2),如果按照名字找不到,再按照类型去找,但如果找到多个匹配类型,报错; 3),可以直接使用name属性指定bean的名称;但是,如果指定的name,就只能按照name去找,如果找不到,就不会再按照类型去找;

    按名字找,找到用setter方法注入,找到不再按类型找,若找到多个类型则报错,再使用name指定名字

  • 相关阅读:
    2010.10.10 第九课 函数(二)(递归)(汉诺塔)
    2020.10.8第八课函数(一)(4种函数)
    2020.9.29 第七课 字符串函数与字符数组
    2020.9.26第六节课数组
    2020.9.22 第四课 运算符表达式和语句
    2020.9.19 第三课 字符串格式化输出与输入
    2020.9.17 第二课 C语言中数据类型 2,8,10进制转换 计算机内存数值存储方式(补码转换)
    2020.9.15 第一课,概念
    spring架构解析--入门(一)
    JAVA对象实例化方式总结
  • 原文地址:https://www.cnblogs.com/Girlir/p/8911408.html
Copyright © 2011-2022 走看看