Struts2整合Spring开发.ppt_第1页
Struts2整合Spring开发.ppt_第2页
Struts2整合Spring开发.ppt_第3页
Struts2整合Spring开发.ppt_第4页
Struts2整合Spring开发.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第14章Struts2整合Spring开发,Spring框架是一个非常优秀和流行的轻量级JavaEE容器。通过使用Spring容器来管理Web应用中的组件,从而降低个组件之间的耦合度。SSH整合开发是一个非常好的企业级开发方案。使用Spring的Ioc容器来负责创建和管理组件,其中这些组件包括前端的业务控制器,中间的业务逻辑组件,以及最底层的DAO组件。这些组件都处于Spring的Ioc容器的管理,从而大大降低各组件之间的耦合度。,14.1初探Spring,14.1.1Spring简介14.1.2下载和安装Spring14.1.3Spring的Ioc应用,14.1.1Spring简介,本章来学习另一个流行框架Spring,并学习使用Struts2整合Spring进行开发。简单来说,Spring是一个轻量级的IoC和AOP容器框架。通过其核心的依赖注入机制,以及AOP的声明式事务管理,与持久层框架整合,以及与其他的MVC框架整合为企业应用提供了一个轻量级的解决方案。SSH整合开发,就是指整合Struts、Spring、Hibernate来进行开发。SSH整合开发是一个非常好的企业级开发方案。使用Spring的Ioc容器来负责创建和管理组件,其中这些组件包括前端的业务控制器,中间的业务逻辑组件,以及最底层的DAO组件。这些组件都处于Spring的Ioc容器的管理,从而大大降低各组件之间的耦合度。Spring框架有如下优势。轻量级,非侵入式:基于Spring开发应用时新建的类一般都无需继承Spring中的类。反向控制:又称为依赖注入和IoC。使用方向控制,对象是被动接收依赖类而不是主动去找,从而降低耦合度。面向切面:又称为AOP。使用面向切面编程,可以将业务逻辑从系统服务中抽取出来,实现内聚开发。Spring是免费的、开放源代码的。Spring拥有众多社区支持。,14.1.2下载和安装Spring,首先登录Spring框架官方站点,如图14-1所示。在下载列表中选择下载Spring2.0.8版本。,14.1.3Spring的Ioc应用,在介绍Spring的依赖注入之前,首先来看一个普通的Java应用。首先定义个Person接口,该接口中包含一个go()方法,代码如下所示。packagenet.hncu.demo01;publicinterfacePerson/Person接口包含一个go方法publicvoidgo();新建Student类,该类实现Person接口,并实现Person接口中的go()方法,代码如下所示。packagenet.hncu.demo01;publicclassStudentimplementsPerson/实现Person接口中的go方法publicvoidgo()System.out.println(去教室上课);,14.2Spring的依赖注入,使用Spring的依赖注入可以为对象注入属性值。Spring的依赖注入分为两种,一种是通过Set方法注入依赖,一种是通过够构造函数注入依赖。,14.2.1通过Set方法注入依赖,下面来看如何通过Spring的依赖注入来为对象注入属性值。首先修改Student类,为其添加name属性,以及name属性的setter和getter方法,代码如下所示。,14.2.2引用其他的Bean,有时候实例需要调用其他类的实例,这时可以不用直接调用实例。而是在Spring容器中创建该实例,并将该实例注入到需要调用它的实例中。修改Teacher类,添加属性student,以及student属性的setter和getter方法,代码如下所示。,14.2.3使用构造函数注入依赖,前面介绍了如何通过Set方法注入依赖,Spring还允许使用构造方法注入依赖。修改Teacher类,为其添加构造函数,其中构造函数接受两个参数,分别为name和student。,14.3Spring的自动装配,前面已经介绍了如何通过使用property元素来装配Bean中的属性。Spring还支持一种自动装配,通过该自动装配可以不用添加property元素直接装配Bean中的属性,而是自动的装配Bean中属性。,14.3.1自动装配分类,前面已经了解了如何通过使用property元素来装配Bean中的属性。Spring还支持一种自动装配,需要在bean元素中添加autowire属性,并指定自动装配类型,代码如下所示。张老师自动装配包含如下四种类型。byName:在IoC容器中寻找与Bean中属性名相同的id对应的Bean,如果找不到相符合的Bean,则该属性没有被装配上。byType:在IoC容器中寻找与Bean中属性相同类型的Bean,如果找不到相符合的Bean,则该属性没有被装配上。如果找到多个相符合的Bean,则会抛出异常。constructor:在IoC容器中寻找与Bean中构造函数参数一致的一个或多个Bean。如果存在不确定的Bean,则会抛出异常。autodetect:自动模式,首先尝试使用constructor来自动装配,然后使用byType方式。,14.3.2byName自动装配,修改id为teacher的Bean配置,使用byName自动装配。这时就不用使用property元素来装配Teacher类的student属性,Spring会自动将id为student的Bean实例注入到TeacherBean实例的student属性中,代码如下所示。,14.3.3byType自动装配,修改id为teacher的Bean配置,使用byType自动装配。这时将在IoC容器中寻找与Bean中属性相同类型的Bean。因为TeacherBean中student属性类型Student,所以会在IoC容器中寻找类型为Student的Bean,并将类型为Student的Bean实例注入到TeacherBean实例的student属性中,代码如下所示。小强张老师,14.3.4constructor自动装配,修改id为teacher的Bean配置,使用constructor自动装配。这时将在IoC容器中寻找与TeacherBean中构造函数参数一致的Bean。因为TeacherBean中的构造函数包含两个参数,分别为name和student,所以会在IoC容器中寻找类型与name参数和student参数相对应的Bean,代码如下所示。,14.4Struts2整合Spring开发,通过整合Struts2和Spring框架,从而通过Spring容器来管理Struts2中的Action。该整合充分利用了Spring的Ioc特性,是非常优秀的解耦策略。,14.4.1安装Spring插件完成整合,整合Spring之前首先需要为Web应用添加Spring所需的JAR文件,然后修改web.xml文件。通过添加一个Listener,使得Web应用启动时会自动查找WEB-INF目录下的applicationContext.xml配置文件,并根据该配置文件来创建Spring容器,代码如下所示。,14.4.2整合策略,在没有使用Spring框架之前,使用工厂模式来创建业务逻辑组件实例,从而将控制器与业务逻辑组件分离开。同样使用工厂模式创建DAO组件实例,从而将业务逻辑与DAO组件分离开。显示,使用工厂模式可以大大降低耦合度,如图14-2所示。使用Spring框架之后,就可以使用Spring来管理控制器,并通过依赖注入的方式为控制器注入业务逻辑组件实例。同样也可以通过依赖注入为业务逻辑组件注入DAO组件实例,如图14-3所示。,14.5整合Spring完成登录案例,前面介绍了如何在Strtus2中如何安装Spring插件,并介绍了Struts2和Spring框架的整合策略。下面介绍如何通过整合Struts2和Spring框架来完成登录案例。,14.5.1修改控制器Action及配置,下面通过整合Spring来改进以前的登录案例。首先修改登录控制器LoginAction,为其添加类型为LoginCheck的属性lc,并为该属性添加setter方法。该属性用来接收注入的业务逻辑组件。,14.5.2依赖注入业务逻辑组件,修改Spring配置文件applicationContext.xml,配置登录控制器对应的实例,并将业务逻辑组件注入到Action实例中,代码如下所示。,14.6整合Spring完成产品管理案例,通过整合Struts2、Hibernate以及Spring框架。并使用Spring的Ioc容器来负责创建和管理组件,其中这些组件包括前端的业务控制器,中间的业务逻辑组件,以及最底层的DAO组件。这些组件都处于Spring的Ioc容器的管理,从而大大降低各组件之间的耦合度。,14.6.1使用Spring容器管理SessionFactory,下面通过整合Spring来改进以前的产品管理案例。在以前的案例里,我们通过代码来手动初始化SessionFactory。现在我们可以通过Spring来配置和管理SessionFactory。同时该SessionFactory为其他DAO组件的持久化访问提供支持。,14.6.2使用HibernateTemplate进行数据库操作,Spring还提供了一个模板类HibernateTemplate,其包含大量的简便方法。通过HibernateTemplate模板类可以很方便的完成持久化操作。在Spring配置文件中定义HibernateTemplate,并为其注入SessionFactory实例,代码如下所示。在Spring配置文件中配置DAO组件,并为其注入HibernateTemplate实例,代码如下所示。,14.6.3依赖注入DAO组件,修改业务逻辑组件,为其添加一个ProductDao类型的属性dao,并添加其setter方法。这样业务逻辑组件就能接受Spring容器中注入的DAO组件。,14.6.4依赖注入业务逻辑组件,修改业务控制器AddAction,为其添加一个ProductService类型的属性ps,并添加其setter方法。这样业务控制器Action就能接受Spring容器中注入的业务逻辑组件。,14.6.5完成Action配置,在struts.xml文件中配置业务控制器Action,其中class属性并不是Action类的实际处理类,而是对应Spring容器中的Bean实例,代码如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论