• @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;

  • 相关阅读:

    IT人的素质 & 设计杂谈
    结构化思维思维的结构
    [WM].NET CF下如何提高应用程序的性能 【转载】
    无题
    [WM]谁抢走了应用程序的性能? 【转载】
    繁体编码文本文件转换为简体编码的工具
    生成VB多行字符串常量的工具
    跟我一步一步开发自己的Openfire插件
    cnblogs博文浏览[推荐、Top、评论、关注、收藏]利器代码片段
  • 原文地址:https://www.cnblogs.com/bigjor/p/11760013.html
Copyright © 2020-2023  润新知