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;

  • 相关阅读:
    js实现方块弹珠游戏
    学习servlet时出现的一些问题
    简述JAVA类的生命周期
    JAVA高级之路----JAVA多线程
    小计Tomcat的调优思路
    java生成pdf
    git分支在团队中的使用
    程序员修炼内功心法
    学会学习
    如何快速阅读
  • 原文地址:https://www.cnblogs.com/bigjor/p/11760013.html
Copyright © 2011-2022 走看看