- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在为 .net 寻找一个简单的 3D 绘图 API。我需要绘制的形状是: 空心气缸 空心球体 空心立方体 3D线条 用于注释形状的 3D 文本 我正在寻找的功能是基本的平移、旋转和缩放功能。 任何
如其所说,我在网上读到有关将 Spine 导入 LibGDX 的信息。我正在使用 Android Studio 开发游戏并使用 LibGDX 框架。但是我的游戏需要 2D 装配动画而不是预渲染模型,所
我是一名优秀的程序员,十分优秀!