Struts2整合Spring开发.ppt

上传人:小飞机 文档编号:6521438 上传时间:2023-11-08 格式:PPT 页数:27 大小:221.50KB
返回 下载 相关 举报
Struts2整合Spring开发.ppt_第1页
第1页 / 共27页
Struts2整合Spring开发.ppt_第2页
第2页 / 共27页
Struts2整合Spring开发.ppt_第3页
第3页 / 共27页
Struts2整合Spring开发.ppt_第4页
第4页 / 共27页
Struts2整合Spring开发.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Struts2整合Spring开发.ppt》由会员分享,可在线阅读,更多相关《Struts2整合Spring开发.ppt(27页珍藏版)》请在三一办公上搜索。

1、第14章 Struts 2整合Spring开发,Spring框架是一个非常优秀和流行的轻量级Java EE容器。通过使用Spring容器来管理Web应用中的组件,从而降低个组件之间的耦合度。SSH整合开发是一个非常好的企业级开发方案。使用Spring的Ioc容器来负责创建和管理组件,其中这些组件包括前端的业务控制器,中间的业务逻辑组件,以及最底层的DAO组件。这些组件都处于Spring的Ioc容器的管理,从而大大降低各组件之间的耦合度。,14.1 初探Spring,14.1.1 Spring简介14.1.2 下载和安装Spring14.1.3 Spring的Ioc应用,14.1.1 Sprin

2、g简介,本章来学习另一个流行框架Spring,并学习使用Struts 2整合Spring进行开发。简单来说,Spring是一个轻量级的IoC和AOP容器框架。通过其核心的依赖注入机制,以及AOP的声明式事务管理,与持久层框架整合,以及与其他的MVC框架整合为企业应用提供了一个轻量级的解决方案。SSH整合开发,就是指整合Struts、Spring、Hibernate来进行开发。SSH整合开发是一个非常好的企业级开发方案。使用Spring的Ioc容器来负责创建和管理组件,其中这些组件包括前端的业务控制器,中间的业务逻辑组件,以及最底层的DAO组件。这些组件都处于Spring的Ioc容器的管理,从而

3、大大降低各组件之间的耦合度。Spring框架有如下优势。轻量级,非侵入式:基于Spring开发应用时新建的类一般都无需继承Spring中的类。反向控制:又称为依赖注入和IoC。使用方向控制,对象是被动接收依赖类而不是主动去找,从而降低耦合度。面向切面:又称为AOP。使用面向切面编程,可以将业务逻辑从系统服务中抽取出来,实现内聚开发。Spring是免费的、开放源代码的。Spring拥有众多社区支持。,14.1.2 下载和安装Spring,首先登录Spring框架官方站点http:/www.springframework.org,如图14-1所示。在下载列表中选择下载版本。,14.1.3 Spri

4、ng的Ioc应用,在介绍Spring的依赖注入之前,首先来看一个普通的Java应用。首先定义个Person接口,该接口中包含一个go()方法,代码如下所示。package net.hncu.demo01;public interface Person/Person接口包含一个go方法public void go();新建Student类,该类实现Person接口,并实现Person接口中的go()方法,代码如下所示。package net.hncu.demo01;public class Student implements Person/实现Person接口中的go方法public void

5、 go()System.out.println(去教室上课);,14.2 Spring的依赖注入,使用Spring的依赖注入可以为对象注入属性值。Spring的依赖注入分为两种,一种是通过Set方法注入依赖,一种是通过够构造函数注入依赖。,14.2.1 通过Set方法注入依赖,下面来看如何通过Spring的依赖注入来为对象注入属性值。首先修改Student类,为其添加name属性,以及name属性的setter和getter方法,代码如下所示。,14.2.2 引用其他的Bean,有时候实例需要调用其他类的实例,这时可以不用直接调用实例。而是在Spring容器中创建该实例,并将该实例注入到需要调

6、用它的实例中。修改Teacher类,添加属性student,以及student属性的setter和getter方法,代码如下所示。,14.2.3 使用构造函数注入依赖,前面介绍了如何通过Set方法注入依赖,Spring还允许使用构造方法注入依赖。修改Teacher类,为其添加构造函数,其中构造函数接受两个参数,分别为name和student。,14.3 Spring的自动装配,前面已经介绍了如何通过使用property元素来装配Bean中的属性。Spring还支持一种自动装配,通过该自动装配可以不用添加property元素直接装配Bean中的属性,而是自动的装配Bean中属性。,14.3.1

7、自动装配分类,前面已经了解了如何通过使用property元素来装配Bean中的属性。Spring还支持一种自动装配,需要在bean元素中添加autowire属性,并指定自动装配类型,代码如下所示。张老师自动装配包含如下四种类型。byName:在IoC容器中寻找与Bean中属性名相同的id对应的Bean,如果找不到相符合的Bean,则该属性没有被装配上。byType:在IoC容器中寻找与Bean中属性相同类型的Bean,如果找不到相符合的Bean,则该属性没有被装配上。如果找到多个相符合的Bean,则会抛出异常。constructor:在IoC容器中寻找与Bean中构造函数参数一致的一个或多个B

8、ean。如果存在不确定的Bean,则会抛出异常。autodetect:自动模式,首先尝试使用constructor来自动装配,然后使用byType方式。,14.3.2 byName自动装配,修改id为teacher的Bean配置,使用byName自动装配。这时就不用使用property元素来装配Teacher类的student属性,Spring会自动将id为student的Bean实例注入到Teacher Bean实例的student属性中,代码如下所示。,14.3.3 byType自动装配,修改id为teacher的Bean配置,使用byType自动装配。这时将在IoC容器中寻找与Bean中

9、属性相同类型的Bean。因为Teacher Bean中student属性类型Student,所以会在IoC容器中寻找类型为Student的Bean,并将类型为Student的Bean实例注入到Teacher Bean实例的student属性中,代码如下所示。小强张老师,14.3.4 constructor自动装配,修改id为teacher的Bean配置,使用constructor自动装配。这时将在IoC容器中寻找与Teacher Bean中构造函数参数一致的Bean。因为Teacher Bean中的构造函数包含两个参数,分别为name和student,所以会在IoC容器中寻找类型与name参数

10、和student参数相对应的Bean,代码如下所示。,14.4 Struts 2整合Spring开发,通过整合Struts 2和Spring框架,从而通过Spring容器来管理Struts 2中的Action。该整合充分利用了Spring的Ioc特性,是非常优秀的解耦策略。,14.4.1 安装Spring插件完成整合,整合Spring之前首先需要为Web应用添加Spring所需的JAR文件,然后修改web.xml文件。通过添加一个Listener,使得Web应用启动时会自动查找WEB-INF目录下的applicationContext.xml配置文件,并根据该配置文件来创建Spring容器,代

11、码如下所示。,14.4.2 整合策略,在没有使用Spring框架之前,使用工厂模式来创建业务逻辑组件实例,从而将控制器与业务逻辑组件分离开。同样使用工厂模式创建DAO组件实例,从而将业务逻辑与DAO组件分离开。显示,使用工厂模式可以大大降低耦合度,如图14-2所示。使用Spring框架之后,就可以使用Spring来管理控制器,并通过依赖注入的方式为控制器注入业务逻辑组件实例。同样也可以通过依赖注入为业务逻辑组件注入DAO组件实例,如图14-3所示。,14.5 整合Spring完成登录案例,前面介绍了如何在Strtus 2中如何安装Spring插件,并介绍了Struts 2和Spring框架的整

12、合策略。下面介绍如何通过整合Struts 2和Spring框架来完成登录案例。,14.5.1 修改控制器Action及配置,下面通过整合Spring来改进以前的登录案例。首先修改登录控制器LoginAction,为其添加类型为LoginCheck的属性lc,并为该属性添加setter方法。该属性用来接收注入的业务逻辑组件。,14.5.2 依赖注入业务逻辑组件,修改Spring配置文件applicationContext.xml,配置登录控制器对应的实例,并将业务逻辑组件注入到Action实例中,代码如下所示。,14.6 整合Spring完成产品管理案例,通过整合Struts 2、Hiberna

13、te以及Spring框架。并使用Spring的Ioc容器来负责创建和管理组件,其中这些组件包括前端的业务控制器,中间的业务逻辑组件,以及最底层的DAO组件。这些组件都处于Spring的Ioc容器的管理,从而大大降低各组件之间的耦合度。,14.6.1 使用Spring容器管理SessionFactory,下面通过整合Spring来改进以前的产品管理案例。在以前的案例里,我们通过代码来手动初始化SessionFactory。现在我们可以通过Spring来配置和管理SessionFactory。同时该SessionFactory为其他DAO组件的持久化访问提供支持。,14.6.2 使用Hiberna

14、teTemplate进行数据库操作,Spring还提供了一个模板类HibernateTemplate,其包含大量的简便方法。通过HibernateTemplate模板类可以很方便的完成持久化操作。在Spring配置文件中定义HibernateTemplate,并为其注入SessionFactory实例,代码如下所示。在Spring配置文件中配置DAO组件,并为其注入HibernateTemplate实例,代码如下所示。,14.6.3 依赖注入DAO组件,修改业务逻辑组件,为其添加一个ProductDao类型的属性dao,并添加其setter方法。这样业务逻辑组件就能接受Spring容器中注入的

15、DAO组件。,14.6.4 依赖注入业务逻辑组件,修改业务控制器AddAction,为其添加一个ProductService类型的属性ps,并添加其setter方法。这样业务控制器Action就能接受Spring容器中注入的业务逻辑组件。,14.6.5 完成Action配置,在struts.xml文件中配置业务控制器Action,其中class属性并不是Action类的实际处理类,而是对应Spring容器中的Bean实例,代码如下所示。,14.7 小结,本章首先介绍了Spring框架的优势,以及Spring的IoC应用。本章还介绍了Spring的依赖注入,分别介绍了通过Set方法注入依赖和使用构造方法注入依赖等。本章还介绍了Spring的自动装配,并通过示例来演示不同类型的自动装配的不同。本章重点介绍了Struts 2整合Spring开发,通过登录案例来演示了Struts 2和Spring的整合。最后通过整合Struts 2、Hibernate以及Spring框架完成了产品管理应用开发。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号