struts2整合spring开发

上传人:san****019 文档编号:71631630 上传时间:2019-01-21 格式:PPT 页数:27 大小:450.81KB
返回 下载 相关 举报
struts2整合spring开发_第1页
第1页 / 共27页
struts2整合spring开发_第2页
第2页 / 共27页
struts2整合spring开发_第3页
第3页 / 共27页
struts2整合spring开发_第4页
第4页 / 共27页
struts2整合spring开发_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《struts2整合spring开发》由会员分享,可在线阅读,更多相关《struts2整合spring开发(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 下载和安装Spring 14.1.3 Spring的Ioc应用,14.1.1 Sp

2、ring简介,本章来学习另一个流行框架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所示。在下载列表中选择下载Sprin

4、g2.0.8版本。,14.1.3 Spring的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

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

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

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

8、onstructor:在IoC容器中寻找与Bean中构造函数参数一致的一个或多个Bean。如果存在不确定的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为teac

9、her的Bean配置,使用byType自动装配。这时将在IoC容器中寻找与Bean中属性相同类型的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中的构造函

10、数包含两个参数,分别为name和student,所以会在IoC容器中寻找类型与name参数和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目录下的app

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

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

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

14、sionFactory为其他DAO组件的持久化访问提供支持。,14.6.2 使用HibernateTemplate进行数据库操作,Spring还提供了一个模板类HibernateTemplate,其包含大量的简便方法。通过HibernateTemplate模板类可以很方便的完成持久化操作。 在Spring配置文件中定义HibernateTemplate,并为其注入SessionFactory实例,代码如下所示。 在Spring配置文件中配置DAO组件,并为其注入HibernateTemplate实例,代码如下所示。 ,14.6.3 依赖注入DAO组件,修改业务逻辑组件,为其添加一个Produc

15、tDao类型的属性dao,并添加其setter方法。这样业务逻辑组件就能接受Spring容器中注入的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备13022795号 | 川公网安备 51140202000112号