
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用 spring 2.5 注释驱动的 ioc 功能它可以充分利用 java 的反射机制猎取类结构信息,这些信息可以有效削减配置的工作。如用法 jpa 注释配置 orm 映射时,我们就不需要指定 po 的属性名、类型等信息,假如关系表字段和 po 属性名、类型都全都,您甚至无需编写任务属性映射信息 由于这些信息都可以通过 java 反射机制猎取。 注释和 java 代码位于一个文件中,而 xml 配置采纳自立的配置文件,大多数配置信息在程序开发完成后都不会调节,假如配置信息和 java 代码放在一起,有助于增加程序的内聚性。而采纳自立的 xml 配置文件,程序员在编写一个功能时,往往需要在程序
2、文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。 因此在无数状况下,注释配置比 xml 配置更受欢迎,注释配置有进一步流行的趋势。spring 2.5 的一大增加就是引入了无数注释类,现在您已经可以用法注释配置完成大部分 xml 配置的功能。在这篇文章里,我们将向您叙述用法注释举行 bean 定义和依靠注入的内容。 - 回页首 本来我们是怎么做的 在用法注释配置之前,先往返顾一下传统上是如何配置 bean 并完成 bean 之间依靠关系的建立。下面是 3 个类,它们分离是 office、car 和 boss,这 3 个类需要在 spring 容器中配置为 bean: office
3、仅有一个属性: 清单 1. office.java package com.baobaotao; public class office private sing officeno = 001 /省略 get/ter overre public string tostring() return officeno: + officeno; car 拥有两个属性: 清单 2. car.java package com.baobaotao; public class car private string brand; private double price; / 省略 get/setter ove
4、rride public string tostring() return brand: + brand + , + price: + price; boss 拥有 office 和 car 类型的两个属性: 清单 3. boss.java package com.baobaotao; public class boss private car car; private office office; / 省略 get/setter override public string tostring() return car: + car + n + office: + office; 我们在 sp
5、ring 容器中将 office 和 car 声明为 bean,并注入到 boss bean 中:下面是用法传统 xml 完成这个工作的配置文件 beans.xml: 清单 4. beans.xml 将以上三个类配置成 bean xml version= 1.0 eoding= utf-8 beans xms= /schema/beans xmlns:xsi= /2001/xmlschema-instance xsi:schemaloion= /s
6、chema/beans /schema/beans/spring-beans-2.5.xsd bean id= boss > property name= car ref= car / property name= office ref= office / /bean bean id= office > property name= officeno value= 002 / /bean bean id= car > property name= brand value= 红旗 ca72 / property name
7、= price value= 2000 / /bean /beans 当我们运行以下代码时,控制台将正确打出 boss 的信息: 清单 5. 测试类:annoioctest.java import org.springframework.contt.applicationcontext; import org.springframework.context.pport.classpathxmlapplicationcontext; public class annoioctest public ic void main(string args) string locations = beans
8、.xml applicationcontext ctx = new classpathxmlapplicationcontext(locations); boss boss = (boss) ctx.getbean( boss system.out.println(boss); 这解释 spring 容器已经正确完成了 bean 创建和装配的工作。 - 回页首 用法 autowir 注释 spring 2.5 引入了 autowired 注释,它可以对类成员变量、办法及构造函数举行标注,完成自动装配的工作。来看一下用法 autowired 举行成员变量自动注入的代码: 清单 6. 用法 aut
9、owired 注释的 boss.java package com.baobaotao; import org.springframework.beans.factory.annotation.autowired; public class boss autowired private car car; autowired private office office; spring 通过一个 beanpostprocessor 对 autowired 举行解析,所以要让 autowired 起作用必需事先在 spring 容器中声明 autowiredannotationbeanpostproc
10、essor bean。 清单 7. 让 autowired 注释工作起来 xml version= 1.0 encoding= utf-8 beans xmlns= /schema/beans xmlns:xsi= /2001/xmlschema-instance xsi:schemalocation= /schema/beans /schema/beans/spring-beans-2.5
11、.xsd !- 该 beanpostprocessor 将自动起作用,对标注 autowired 的 bean 举行自动注入 - bean > autowiredannotationbeanpostprocessor / !- 移除 boss bean 的属性注入配置的信息 - bean id= boss > bean id= office > property name= officeno value= 001 / /bean bean id= car > property name= brand value= 红旗 ca72 / property name= pri
12、ce value= 2000 / /bean /beans 这样,当 spring 容器启动时,autowiredannotationbeanpostprocessor 将扫描 spring 容器中全部 bean,当发觉 bean 中拥有 autowired 注释时就找到和其匹配(默认按类型匹配)的 bean,并注入到对应的地方中去。 根据上面的配置,spring 将挺直采纳 java 反射机制对 boss 中的 car 和 office 这两个私有成员变量举行自动注入。所以对成员变量用法 autowired 后,您大可将它们的 setter 办法(setcar() 和 setoffice()
13、)从 boss 中删除。 固然,您也可以通过 autowired 对办法或构造函数举行标注,来看下面的代码: 清单 8. 将 autowired 注释标注在 setter 办法上 package com.baobaotao; public class boss private car car; private office office; autowired public void setcar(car car) this.car = car; autowired public void setoffice(office office) this.office = office; 这时,aut
14、owired 将查找被标注的办法的入参类型的 bean,并调用办法自动注入这些 bean。而下面的用法办法则对构造函数举行标注: 清单 9. 将 autowired 注释标注在构造函数上 package com.baobaotao; public class boss private car car; private office office; autowired public boss(car car ,office office) this.car = car; this.office = office ; 因为 boss() 构造函数有两个入参,分离是 car 和 office,aut
15、owired 将分离寻觅和它们类型匹配的 bean,将它们作为 boss(car car ,office office) 的入参来创建 boss bean。 - 回页首 当候选 bean 数目不为 1 时的应对办法 在默认状况下用法 autowired 注释举行自动注入时,spring 容器中匹配的候选 bean 数目必需有且仅有一个。当找不到一个匹配的 bean 时,spring 容器将抛出 beancreationexception 异样,并指出必需起码拥有一个匹配的 bean。我们可以来做一个试验: 清单 10. 候选 bean 数目为 0 时 xml version= 1.0 enco
16、ding= utf-8 beans xmlns= /schema/beans xmlns:xsi= /2001/xmlschema-instance xsi:schemalocation= /schema/beans /schema/beans/spring-beans-2.5.xsd bean > autowiredannotationbeanpostprocessor / bean id= boss > !- 将 office bean 注释掉 - !- bean id= office > property name=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供电产权分界协议书范本
- 高端别墅折叠门定制采购合同模板
- 粤式茶餐厅区域加盟代理经营协议
- 精准匹配车贷需求居间服务合同样本
- 住宅小区拆迁补偿及重建工程承包协议
- 采矿权抵押贷款合同范本及风险评估协议
- 节能减排教育实施路径
- 电梯乘坐安全教育
- 余氯测定方法培训
- 智慧停车解决方案
- 医疗质量管理质控科的未来发展趋势与挑战
- 人事行政部2025年部门工作总结模版
- 2025年庆祝建党104周年党章知识竞赛测试题库及答案(共50题)
- 2025山煤国际井下岗位高校毕业生招聘300人(山西)笔试参考题库附带答案详解
- 生物安全培训知识课件
- 2023版《护理分级标准》解读
- 2025年贵州省普通高中学业水平模拟考试物理试卷
- 委托收款协议书模板
- 信息系统的使用与维护管理制度
- 常州保安证考试题及答案
- 全国中小学生学籍信息管理系统用户操作手册(学校级)
评论
0/150
提交评论