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;

  • 相关阅读:
    EasyUI--Alert()
    asp.net 页面之间传值的几种方式
    c# 的类成员
    c# protected public private internal
    C#中的多态性
    c# 静态成员和实例成员的区别
    js确认框confirm()用法实例详解
    JS中的switch case
    分分钟用上C#中的委托和事件
    Asp.net MVC中关于@Html标签Label、Editor使用
  • 原文地址:https://www.cnblogs.com/bigjor/p/11760013.html
Copyright © 2011-2022 走看看