使用手工注解方式有两种方式@Resource、@Autowired

首先,引入注解所使用的Jar包  :common-annotations.jar

然后在beans.xml中加入命名空间空间

xmlns:context="http://www.springframework.org/schema/context"

然后打开使用注解的开关(在beans节点下的第一个节点处加入<context:annotation-config /> );

</pre></p><p><pre name="code" class="html"><beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config /> <bean id="personIDao" class="cn.dao.impl.PersonDaoImpl" />
<bean id="personIService" class="cn.server.impl.PersonServiceImpl">
</bean>
</beans>

@Resource

在程序中使用@Resource  ,@Resource可以加在字段上,如:

@Resource private PersonIDao personIDao;

@Resource 也可以加在 字段的Set方法上,如:

</pre><pre name="code" class="java">private PersonIDao personIDao;

	@Resource
public void setPersonIDao(PersonIDao personIDao) {
this.personIDao = personIDao;
}
public PersonIDao getPersonIDao() {
return personIDao;
}

@Resource 首先会根据字段的名称到beans.xml中去寻找相匹配的配置,如果找不到再根据字段的类型到beans.xml中找类型相匹配的配置;

还可以为@Resources指定特定的名字如下:

	@Resource(name="personIDao")
private PersonIDao personIDao;

还可以为@Resources指定类型,如下:

	@Resource(type=PersonIDao.class)
private PersonIDao personIDao;

以上几种 方式都可以完成对字段或者字段的set方法进行注入;

@Autowired

默认情况下@Autowired是按类型进行注入:

<pre name="code" class="java">	@Autowired
private PersonIDao personIDao;


但 @Autowired同样也可以按名称注入:
<pre name="code" class="java">	@Autowired @Qualifier("personIDaoxx")
private PersonIDao personIDao;

下面说明一下为什么推荐使用  @Resorce进行注解:

1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 

2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:

  1. @Autowired() @Qualifier("baseDao")
  2. private BaseDao baseDao;

3、@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定, 

如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

  1. @Resource(name="baseDao")
  2. private BaseDao baseDao;

我喜欢用 @Resource注解在字段上,且这个注解是属于J2EE的,减少了与spring的耦合。最重要的这样代码看起就比较优雅。

最新文章

  1. 利用set排序数组并且去掉重复的数组元素
  2. jqury 右击事件插件
  3. java和h5 canvas德州扑克开发中(一)
  4. Eclipse安装nodeclipse插件
  5. 分享一套精美的现代 UI PSD 工具包【免费下载】
  6. acm 20140825
  7. 基于.net mvc的校友录(五、web.config对的配置以及filter实现的权限控制)
  8. openerp经典收藏 深入理解工作流(Workflow)(转载)
  9. 快速建立Linux c/c++编译环境
  10. CSS clip:rect矩形剪裁功能及一些应用介绍
  11. C#查询当前微信自定义菜单结构
  12. hdoj 2085 核反应堆【水】
  13. 小米平板6.0系统如何无ROOT激活xposed框架的步骤
  14. 第54节:Java当中的IO流(中)
  15. DataGrid列中加入CheckBox 全选 点击Header全选 和 只操作选中部分 功能的实现
  16. 华为交换机MSTP+VRRP配置实例说明文档
  17. 泡泡一分钟:A Multi-Position Joint Particle Filtering Method for Vehicle Localization in Urban Area
  18. cuda中用cublas库做矩阵乘法
  19. 委托、事件、匿名方法、Lambda
  20. java后端面试题汇总

热门文章

  1. python socket编程学习笔记2
  2. Jquery基础之ajax
  3. USB 传输协议
  4. 14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用
  5. Opencv2.4.4作图像旋转和缩放
  6. Matrix, Her, Transcendence
  7. Kolmogorov复杂性
  8. 安装android studio时,解决unable to access android sdk add-on list
  9. CentOS 6.8yum源的配置
  10. 通过Jetty搭建一个简单的Servlet运行环境