Spring框架入门教程Word文档格式.doc
- 文档编号:13162336
- 上传时间:2022-10-07
- 格式:DOC
- 页数:33
- 大小:184KB
Spring框架入门教程Word文档格式.doc
《Spring框架入门教程Word文档格式.doc》由会员分享,可在线阅读,更多相关《Spring框架入门教程Word文档格式.doc(33页珍藏版)》请在冰豆网上搜索。
控制反转/依赖注入---面向切入编程---与主流框架的整合、管理---
二、实例拓展
1.准备搭建环境
dist\spring.jar
lib\jakata-commons\commons-loggin.jar
如果使用了切面编程,还需下列jar文件:
lib\aspectj\aspectjweaver.jar和aspectjrt.jar
lib\cglib\cglib-nodep-2.1.3.jar
如果使用了jsr-250中的注解,还需要下列jar文件:
lib\j2ee\common-annotations.jar
2.搭建并测试环境
建立名为spring_01_base项目,根据需求导入jar包。
建立一个Junit测试单元
SpringEnvTest,测试代码如下:
@Test
publicvoidtestEnv(){
ApplicationContextctx=new
ClassPathXmlApplicationContext("
beans.xml"
);
}
beans.xml配置文件在此省略(见下)。
运行此测试如无错,则说明环境搭建成功。
说明:
beans.xml可以在类路径下进行配置,也可以在具体的目录下配置。
可以是一个配置文
件,也可以是多个配置文件组成String数组传入。
3.实例
作如下准备工作:
(1)建立UseDao接口,代码如下:
packagecom.asm.dao;
publicinterfaceUserDao{
voidsave();
(2)建立UserDao接口的实现类,UserDaoImpl
packagecom.asm.dao.impl;
importcom.asm.dao.UserDao;
publicclassUserDaoImplimplementsUserDao{
publicvoidsave(){
System.out.println("
执行save方法..."
(3)在src目录下配置此beans.xml,它的配置如下:
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
beansxmlns="
http:
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
//www.springframework.org/schema/beans
//www.springframework.org/schema/beans/spring-beans-2.5.xsd"
beanid="
userDaoImpl"
class="
com.asm.dao.impl.UserDaoImpl"
/>
/beans>
bean代表一个实质的java类,通过它的id可以获取一个此类的一个对象。
补充:
让xml配置文件在编译时提示
[windows][preferences][myeclipse][filesandeditors][xml][xmlcatalog]点add,
在出现窗口的location中选“filesystem”,然后在spring解压目录的dist/resources
目录中选择“spring-beans-2.5.xsd”,并将keyType值改为“SchemaLocation”,key值
为:
//www.springframework.org/schema/beans/spring-beans-2.5.xsd
(4)Junit测试单元SpringEnvTest中增加如下代码测试:
publicvoidbase(){
UserDaouserDao=(UserDao)ctx.getBean("
userDao.save();
以上的代码就是通过配置文件beans.xml获取所需要的实例对象。
4.三种bean的生成方式
除了上面使用的类直接生成方式,还有bean静态工厂及bean实例工厂。
bean静态工厂的配置如下:
userDaoImpl2"
com.asm.dao.impl.UserDaoImplFactory"
factory-method="
getUserDaoImpl"
/>
相应的工厂类代码如下:
publicclassUserDaoImplFactory{
publicstaticUserDaoImplgetUserDaoImpl(){
returnnewUserDaoImpl();
bean实例工厂的配置如下:
factory"
com.asm.dao.impl.UserDaoImplFactory2"
userDaoImpl3"
factory-bean="
相应的工厂类的代码如下:
publicclassUserDaoImplFactory2{
publicUserDaoImplgetUserDaoImpl(){
5.bean的作用域
singleton:
返回bean的同一个实例,也是默认的作用域(无状态bean使用此作用域)
prototype:
每次请求都会创建一个实例(有状态bean使用此作用域)
request、session、globalsession这三个作用域主要用在web应用中
6.bean的生命周期
(1)什么时候初始化bean实例
当scope=singleton,即默认情况,会在装载配置文件时实例化。
如果希望在调用getBean
时才初始化,可以使用lazy-init="
true"
补充:
如果希望希望该配置文件中的所有bean
都延迟初始化,则应在beans根结点中使用lazy-init="
。
当scope=prototype时,在调用getBean()方法时才会初始化。
(2)生命周期:
构造器、init方法、获取bean后的操作、destroy方法(ctx.close、注意如果bean的scope
设为prototype时,当ctx.close时,destroy方法不会被调用)
7.属性注入Setter方式
(1)简单属性(如String):
userServiceBean"
com.asm.service.UserServiceBean"
propertyname="
id"
value="
10"
/property>
username"
张某某"
/bean>
(2)对象属性-外部bean注入:
在上面的<
bean>
中增加如下配置:
userDao"
ref="
对象属性-内部bean注入:
temp"
(3)集合属性注入:
list"
list>
value>
List值一<
/value>
List值二<
List值三<
/list>
set"
set>
Set值二<
Set值一<
Set值三<
/set>
map"
map>
entrykey="
one"
一"
two"
二"
three"
三"
/map>
pro"
props>
propkey="
p1"
first<
/prop>
p2"
second<
p3"
third<
/props>
注意:
在相应的字段上一定要有setter方法,才能注入。
使用继承。
在beans.xml中的配置如下:
beanabstract="
id="
parent"
>
XXX"
com.asm.vo.User"
parent="
password"
123456"
相当于在XXXbean实例中也有username属性设置。
8.属性注入构造器方式
userServiceBean2"
constructor-argindex="
0"
李某某"
1"
2"
/constructor-arg>
/be
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring 框架 入门教程