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指定名字

  • 相关阅读:
    Mybatis在oracle批量更新
    WebService小记
    java基本排序
    ant使用
    python 集合
    amazon-aws 使用 SNS 发送短信
    Html5+ 开发APP 后台运行代码
    CentOS7 -防火墙
    java 模拟表单方式提交上传文件
    修改pom项目版本 jenkins 关联 shell命令
  • 原文地址:https://www.cnblogs.com/Girlir/p/8911408.html
Copyright © 2011-2022 走看看