zoukankan      html  css  js  c++  java
  • @Resource Autowired注解区别

    链接:https://www.zhihu.com/question/39356740/answer/80926247
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    当我们在xml里面为类配置注入对象时,会发现xml文件会越来越臃肿,维护起来很麻烦。这时候我们可以使用注解这种机制来为类配置注入对象。

    java为我们提供了 javax.annotation.Resource这个注解。

    spring框架提供了org.springframework.beans.factory.annotation.Autowired。

    一般情况下我们使用 javax.annotation.Resource这个注解,因为这样我们就能实现和spring框架的解藕(不能认同,因为注解处理器还是Spring提供的)。

    @Resource可以作用于字段和函数上。当作用于字段上的时候,如果我们只是简单的这样写

    @ResourcePersonDao p;
    这时候spring注入p的过程是 1:先查找xml中是否有id为p的元素

    2:如果没有找到,则看是否有name属性(@Resource name=“”),有则查找name

    3:否则查找PersonDao类型的元素

    @Resource可作用于set函数上。

    例如:

    @Resourcepublic void setP(PersonDao p) { this.p = p;}
    @Autowired注解是根据类型进行查找,比如PersonDao p,他会去xml文件里查找类型为PersonDao的元素
    默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
    @Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:

    Java代码
    @Autowired() @Qualifier("baseDao") private BaseDao baseDao;

  • 相关阅读:
    Pandas+Numpy 数据中空值的处理操作:判断、查找、填充及删除
    跑新项目时遇到的报错及解决方案
    Java Stream流排序null以及获取指定条数数据
    通信端口Com口被占用的原因分析
    查询sq字段逗号分隔的方式
    IIS及时回收
    oracle中创建sequence指定起始值
    js 面向对象代码
    C# 将html实体编码转换到正常字符 & #40;格式
    DataTable列查询加排序
  • 原文地址:https://www.cnblogs.com/bigjor/p/11760013.html
Copyright © 2011-2022 走看看