gpt4 book ai didi

通过@Resource注解实现属性装配代码详解

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章通过@Resource注解实现属性装配代码详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文主要探究的问题时使用@Resource注解实现属性装配,当中涉及依赖注入—手工装配,@Autowired和@Resource注解的区别等相关内容,具体如下.

使用Field注入(用于注解方式):注入依赖对象可以采用手工装配或者手工自动装配。在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果.

依赖注入—手工装配 。

手工装配依赖对象,在这种方式中又有两种编程方式.

1.在xml配置文件中,通过bean节点配置,如:

?
1
2
3
4
5
6
< bean id = "orderService" class = "cn.itcast.service.OrderServiceBean" >
   //构造器注入
   < constructor-arg index = "0" type = "java.lang.String" value = "xxx" />
   //属setter方法注入
   < property name = "name" value = "zhao" />
</ bean >

2.在java代码中使用@Autowired或者@Resource注解方式进行装配。但我们需要在xml配置文件中配置一下信息 。

?
1
2
3
4
5
6
7
< beans Xmlns = "http://www.springframework.org/schema/beans"
        Xmlns = "http://www.w3.org/2001/XMLSchema-instance"
        Xmlns:context = "http://www.springframework.org/schema/context"
        Xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context-2.5xsd">
</ beans >

这个配置隐式注册了多个对注释进行解析处理的处理器:

AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor 。

PersistenceAnnotationBeanProcessor,RequiredAnnotationBeanPostProcessor 。

3.区别 。

在java代码中使用@Autowired或@Resource注解方式进行装配。这两个注解的区别是@Autowired默认按类型装配@Resource默认按名称进行装配,当找不到与名称匹配的bean才会按类型装配 。

?
1
2
3
4
5
6
@Autowired
private PersonDao personDao; //用于字段上
@Autowired
public void setOrderDao(OrderDao orderDao){
     this .orderDao = orderDao; //用于属性的setter方法上  
}

@Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false;如果我们想使用名称装配,可以结合@Qualfier注解一起使用,如下:

?
1
2
@Autowired @Qualifier ( "personDao" )
private PersonDao personDao;

@Resource注解和@Autowired一样,可以标注在字段或者属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定;如果没有指定name属性,当注解标注在字段上,即默认字段的名称作为bean名称寻找依赖对象;当注解标注在属性setter方法上,即默认取属性名作为bean名称寻找依赖对象 。

?
1
2
@Resource (name= "personDaoBean" )
private PersonDao personDao;

注:如果没有指定name属性,并且按照默认的名称仍找不到对象时,@Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了.

总结 。

以上就是本文关于通过@Resource注解实现属性装配代码详解的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! 。

原文链接:http://www.cnblogs.com/ckysea/p/4536768.html 。

最后此篇关于通过@Resource注解实现属性装配代码详解的文章就讲到这里了,如果你想了解更多关于通过@Resource注解实现属性装配代码详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com