开发工具:
文件大小: 5mb
下载次数: 0
上传时间: 2019-08-03
详细说明:
NULL
博文链接:https://dacoolbaby.iteye.com/blog/1669856http://jinnianshilongnian.iteye.com
120【第六章】AOP之6.3基于 Schema的AOP——跟我学 spring3.,213
1.21源代码下载—跟我学 sprIn
··
··*·
236
1.22【第六章】AOP之64基于 Aspect的AOP—跟我学 spring3
......237
123【第六章】AOP之66通知参数—跟我学 spring3
248
1.24【第六章】AOP之6.5 Aspect切入点语法详解—跟我学 spring3
DD章春鲁垂
259
125【第六章】AOP之6.6通知参数—跟我学 spring
273
126【第六章】AOP之6.,7通知顺序—跟我学 spring3
279
127【第六章】AOP之68切面实例化模型—跟我学 spring3
281
1.28【第六章】AOP之69代理机制—跟我学 spring3
······
283
129【第七章】对JDBC的支持之71概述—跟我学 spring3
.,,,,,,,,,,,,.285
1.30【第七章】对JDBc的支持之72JDBC模板类——跟我学 spring3.
289
1.31 SpringMvo+ spring311+ hibernate41.0集成及常见问题总结
312
1.32【第七章】对JDBC的支持之7.3关系数据库操作对象化—跟我学 spring3
春看非
323
1.33【第七章】对DBc的支持之74 Spring提供的其它帮助——跟我学 spring3【私塾在线原
创】
,,,,,,,,,,..334
1.34【第七章】对JDBC的支持之75集成 Spring JDBC及最佳实践
跟我学spng
3
343
1.35【第八章】对ORM的支持之81概述—跟我学 spring3
...349
1.36【第八章】对ORM的支持之82集成 Hibernate3——跟我学 spring3
,,,,,,,,,,,.351
第3/365页
http://jinnianshilongnian.iteye.com
1.1【第二章】IoC之2.3IoC的配置使用——跟我学 spring3
11【第二章】IoC之2.3IoC的配置使用—跟我学 Spring3
发表时间:2012-02-20关键字: sprIng
23.1XML配置的结构
一般配置文件结构如下
java代码
查看复制到剪贴板打印
beans>
1234567
< import resource=” resourcel.xm”/>
< bean id="bean2”cass
>
< bean name=”bean2"cass=”">
1、标签主要用来进行Bean定义
2、aias用于定义Bean别名的;
3、 Import用于导入其他配置文件的Bean定义,这是为了加载多个配置文件,当然也可以把这些配置文件构造为一个数
组( new String{" config. xml", config2.Xm})传给 ApplicationContext实现进行加载多个配置文件,那一个更
适合由用户决定;这两种方式都是通过调用 Bean definition reader读取Bean定义,内部实现没有任何区别。
< simport>标签可以放在< beans>下的任何位置,没有顺序关系。
23.2Bean的配置
Spring loc容器目的就是管理Bean,这些Bean将根据配置文件中的Bean定义进行创建,而Bean定义在容器内部由
Bean definition对象表示,该定义主要包含以下信息:
●全限定类名(FQN):用于定义Bean的实现类
●Bean行为定义:这些定义了Bean在容器中的行为;包括作用域(单例、原型创建)、是否惰性初始化及生命周期等
●Bean创建方式定义:说明是通过构造器还是工厂方法创建Bean;
●Bean之间关系定义:即对其他bean的引用,也就是依赖关系定义,这些引用bean也可以称之为同事bean或依赖
bean,也就是依赖注入
Bean定义只有“全限定类名”在当使用构造器或静态工厂方法进行实例化bean时是必须的,其他都是可选的定义。难
道 Spring只能通过配置方式来创健建Bean吗?回答当然不是,某些 Singleton Bean Registry接口实现类实现也允许将那些
第4/365页
http://jinnianshilongnian.iteye.com
1.1【第二章】IoC之2.3IoC的配置使用——跟我学 spring3
非 BeanFactory创建的、已有的用户对象注册到容器中,这些对象必须是共享的,比如使用
DefaultListable Factory的 register Singleton0方法。不过建议采用元数据定义。
23.3Bean的命名
每个Bean以有一个或多个id(或称之为标识符或名字),在这里我们把第一个id称为“标识符”,其余id叫做
别名”;这些id在loC容器中必须唯一。如何为Bean指定id呢,有以下几种方式;
不指定id,只配置必须的全限定类名,由loC容器为其生成一个标识,客户端必须通过接口“T
getBean(Class required Type)”获取Bean
java代码
查看复到剪贴板打印
1. (2)
测试代码片段如下:
java代码
查看复制到剪贴板打印
1.Test
2. public void test20(
3. Bean Factory bean Factory
4. new Class PathXmlApplication Context("chapter 2/namingbean 2 xml");
5./根据d获取bean
6. HelloApi bean =bean Factory getBean("bean", HelloApi. class);
7
bean. sayHelloO
8.}
、指定ηame,这样name就是“标识符”,必须在Ioc容器中唯一
java代码
查看复制到剪贴板打印
1. (3
测试代码片段如下:
ava代码:
查看复制到剪贴板打印
Test
public void test30
Bean Factory bean Factory
4. new ClassPathXmlApplicationContext("chapter2/namingbean3 xml");
/根据name取bean
6. HelloApi bean bean Factory getBean("bean", HelloApi class)
7. bean. sayhelloo
8.}
第6/365页
http://jinnianshilongnian.iteye.com
1.1【第二章】IoC之2.3IoC的配置使用——跟我学 spring3
四、指定id和ηame,id就是标识符,而ηame就是别名,必须在。c容器中唯一;
java代码
查看复带到剪贴板打印
bean id=" bean l" name="aliasl
2. class="cn. javass spring chapter2 helloworld. HelloImpl"/
3.
测试代码片段如下
java代码:
查看复制到剪贴板打印
Test
public void test40(
1234567890
Bean Factory bean Factory
4. new Class PathXmlApplication Context("chapter2/namingbean4 xml")
∥/根据id获取bean
HelloApi beanl =bean Factory getBean(beanl", HelloApi class)
bean 1.say helloo
∥/根据别名获取bean
HelloApi bean bean Factory.getBean(alias, HelloApi class)
bean.say Helloo:
据id获取bean
123456
HelloApi bean= bean Factory getBean(bean3", HelloApi class)
bean. say helloo
Stringl bean aLias bean Factory. getAliases("bean")
因此别名不能和id—样,如果一样则由oC容器负责消除冲突
Assert assertEquals(O, bean Alias length)
五、指定多个ηame,多个name用","、“;、“”分割,第一个被用作标识符,其他的( alias51、lias2、
alias3)是别名,所有标识符也必须在IoC容器中唯一;
ava代码
第7/365页
http://jinnianshilongnian.iteye.com
1.1【第二章】IoC之2.3IoC的配置使用——跟我学 spring3
直看复伟到剪贴板打印
1.
3.
4.
(5)
测试代码片段如下
Java代码
查看复制到剪贴板打印
Test
2. public void test50
3. Bean Factory bean Factory
4. new ClassPathXmlApplication Context("chapter2/namingbean5 xml "
//1根据d获取bean
HelloApi beanl= bean Factory. get Bean( bean1 HelloApi. class);
7
beanl say helloo
8
2根据别名获取bean
9
HelloApi aliasl1 bean Factory. getBean(aliasl1", HelloApi class)
0
alias 11. sayHelloo
11
/3验证确实是四个别名
Stringll bean lAlas= bean factory getaliases( bean 1")
System. out. println (=======namingbean5 xml bean 1 B========;
345678
for(String alias: bean lAlias)[
System.out. printIn(alias);
Assert assertEquals(4, bean IAlias length);
/根据id获取bean
19
HelloApi bean= bean Factory. getBean("bean HelloApi. class);
20
bean 2. sayhello:
21./2根据别名获取
HelloApi alias21= bean Factory getBean(alias21", HelloApi class)
23
alias 21. sayhello o
24
验证确实是两个别名
25
Stringl bean aLias bean Factory getAliases("bean")
26
System. out. println ("=======namingbean5 xml bean 2 BJy
三三三三三三〓
");
for(String alias: bean 2Alias)[
28
System. out println(alias):
29
30
Assert assertEquals(2, bean 2Alias length)
六、使用< alias>标签指定别名,别名也必须在IoC容器中唯
java代码
第8/365页
http://jinnianshilongnian.iteye.com
1.1【第二章】IoC之2.3IoC的配置使用——跟我学 spring3
直看复伟到剪贴板打印
123
(6)
测试代码片段如下
java代码:
查看复制到剪贴板打印
Test
1234567
public void test60
Bean Factory bean Factory
new ClassPathXmlApplication Context("chapter2/namingbean6xmI");
∥/根据id获取bean
HelloApi bean bean Factory getBean("bean", HelloApi. class);
bean. sayHelloo
∥/根据别名获取bean
HelloApi aliasl= bean Factory getBean(alias1", HelloApi class)
liasl. sayhelloo
HelloApi alias bean Factory.get Bean (alias HelloApi class);
12
alias 2. sayhelloo:
13
Stringl] bean Alias bean Factory. getAliases ("bean")
14
System. out. println("=======namingbean6 xml bean BJ4========")
15. for(String alias: beanAlias)
16
System. out. printIn(alias);
17
System. out. println("=======namingbean6 xml bean Bz========")
19
Assert assertEquals(2, beanAlias. length)
以上测试代码在 cn. Kavass. spring. chapter2 Naming BeanTest java文件中。
从定义来看,name或d如果指定它们中的一个时都作为“标识符”,那为什么还要有d和name同时存在呢?这是因为
当使用基于ⅩML的配置元数据时,在ⅩML中id是一个真正的 XML id属性,因此当其他的定义来引用这个id时就体现出id
的好处了,可以利用XML解析器来验证引用的这个id是否存在,从而更早的发现是否引用了一个不存在的bean,而使
用name,则可能要在真正使用bean时才能发现引用一个不存在的bean。
●Bean命名约定:Bean的命名遵循ⅩML命名规范,但最好符合Java命名规范,由“字母、数字、下划线组成“,而且
应该养成一个良好的命名习惯,比如采用“驼峰式”,即第—个单词首字母开始,从第二个单词开始首字母大写开始,
这样可以增加可读性。
第9/365页
http://jinnianshilongnian.iteye.com
1.1【第二章】IoC之2.3IoC的配置使用——跟我学 spring3
23.4实例化Bean
Spring loc容器如何实例化Bean呢?传统应用程序可以逦过new和反射方式进行实例化Bean。而 Spring loc容器则需
要根据Bean定义里的配置元数据使用反射机制来创建Bean。在 Spring Ioc容器中根据Bean定义创建Bean主要有以下
几种方式:
使用构造器实例化Bean:这是最简单的方式, Spring loc容器即能使用默认空构造器也能使用有参数构造器两种方
式创建Bean,如以下方式指定要创建的Bean类型:
使用空构造器进行定义,使用此种方式,clas属性指定的类必须有空构造器
java代码:
查看复制到剪贴板打印
I
使用有参数构造器进行定义,使用此中方式,可以使用< constructor-arg>标签指定构造器参数值,其中 index表示位
置,vaue表示常量值,也可以指定引用,指定引用使用re俫来引用另一个Bean定义,后边会详细介绍:
java代码:
查看复制到剪贴板打印
1.
2.
4.
知道如何配置了,让我们做个例子的例子来实践一下吧
(1)准备 Bean class(helloImpl2java),该类有一个空构造器和一个有参构造器
java代码
查看复制到剪贴板打印
package cn. javass spring chapter 2
2
public class HelloImpl2 implements HelloApi f
第10/365页
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.