`
8366
  • 浏览: 807065 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第27讲--Struts与Spring集成方案1(Struts集成Spring)

阅读更多

 

Spring2.5+Hibernate3.3+Struts1.3整合开发
 hibernate核心安装包下的:
hibernate3.jar
lib\required\*.jar
lib\optional\ehcache-1.2.3.jar
hibernate 注解安装包下的
lib\test\slf4j-log4j12.jar
Spring安装包下的
dist\spring.jar
dist\modules\spring-webmvc-struts.jar
lib\jakarta-commons\commons-logging.jar、commons-dbcp.jar、commons-pool.jar
lib\aspectj\aspectjweaver.jar、aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar
Struts
下载struts-1.3.8-lib.zip,需要使用到解压目录下的所有jar,建议把jstl-1.0.2.jar和standard-1.0.2.jar更换为1.1版本。Spring中已经存在一个antlr-2.7.6.jar,所以把struts中的antlr-2.7.2.jar删除,避免jar冲突。
在上节课程的测试用例中,我们为了得到spring容器的业务bean,我们使用以下的代码来实例化spring容器
try {
			ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
			perService = (PerService)applicationContext.getBean("personService");
		} catch (RuntimeException e) {
			e.printStackTrace();
		}
集成步骤:
 
1.而在开发一个MVC的应用的时候,实例化spring容器我们不在需要自己去实例化,而是让web容器来帮助我们实例化,需要在web.xml中配置一个 listener
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  	<context-param>
  	<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找
  	     配置文件有多个的时候可以使用 , 来分隔,ContextLoaderListener 实例化pring容器后,会把它放到Application
  	     范围内
  	 -->

	   <param-name>contextConfigLocation</param-name>
	   <param-value>classpath:beans.xml</param-value>
	</context-param>
	<!-- 对Spring容器进行实例化 -->
	<listener>
	      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>personlist.jsp</welcome-file>
  </welcome-file-list>
</web-app>
 
2.写Action
package cn.com.xinli.web.action;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import cn.com.xinli.service.PerService;

public class PersonAction extends Action
{
	@Resource PerService perService;
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception
	{
		
		//方式1
		WebApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
		PerService perService=(PerService)ctx.getBean("personService");
		
		request.setAttribute("persons", perService.getPersons());
		/*方式2 使用依赖注入
		 * 
		
		*/
		return mapping.findForward("list");
		
	}	
	
}
 
3. struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<struts-config>
<action-mappings>   

  	  <action  path="/list"
                  
  	         type="cn.com.xinli.web.action.PersonAction"
  	         scope="request" 
  	         validate="false"
  	  >
		
	<forward name="list" path="/personlist.jsp"></forward>			
  	 </action>
  	 </action-mappings>
  
</struts-config>

 
这种集成的方式项目中几乎不使用,以为要在Struts 的Action中得到bean的方法 和spring 的类紧耦合了,而且得到bean的 方式在别的Action中也是一样的 ,重复代码,一般使用 Spring集成struts,在Action中使用依赖注入的方式得到业务bean,在下一讲。
附件中是Struts集成Spring的项目+hibernate,没有放lib目录,lib中的jar包同上一讲
  • SSH.rar (16.1 KB)
  • 下载次数: 31
分享到:
评论
1 楼 zhangyou1010 2009-10-11  
感谢博主 。
我写beans.xml中的
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

把class=""的类写成了org.springframework.orm.hibernate3.LocalSessionFactoryBean ,junit测试时,死活不报错,也没异常。

相关推荐

    第28讲--Struts与Spring集成方案2(Spring集成Struts)

    Struts和Spring是两个在Java Web开发中广泛使用的框架,它们各自解决了一部分问题,但结合起来...总之,Struts与Spring的集成是Java Web开发中的常见实践,它让两个框架的能力相辅相成,为开发者提供了更强大的工具集。

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    `struts2-spring-plugin-2.5.16.jar`是Struts2与Spring集成的插件,它使得Struts2可以利用Spring的依赖注入(DI)和面向切面编程(AOP)能力。通过这个插件,我们可以将Action类的实例化和管理交给Spring容器,从而...

    spring-webmvc-struts.jar

    spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包

    struts-spring-other-lib 等jar包

    struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-...

    spring-mybatis-struts2-master ——demo

    1. 引入依赖:项目中会包含Spring、Struts2、MyBatis的jar包或者对应的Maven/Gradle依赖。 2. 配置Spring:创建Spring的配置文件,配置数据源、事务管理器、SqlSessionFactory、MapperScannerConfigurer等。 3. 配置...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书

    Spring框架则是企业级Java应用的核心容器,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,可以与其他框架如Struts和Hibernate无缝集成。Spring还包含了用于数据访问、Web应用、事务管理等模块,极大地简化了...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例(5) 随书源码

    &lt;精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例&gt;源码和数据库。这是第5卷,请下载完7卷后解压。

    struts+spring集成

    Struts和Spring是两个在Java Web开发中广泛使用的框架,它们各自解决了一部分问题,但结合起来可以提供更全面的解决方案。Struts是一个基于MVC(Model-View-Controller)架构的开源框架,主要负责处理HTTP请求和控制...

    《企业应用架构设计-Struts2 Hibernate3 Spring 2》谢星星 第十九章整合源码

    第十九章的主题是“Struts2 Hibernate3整合源码”,这涉及到Java Web开发中的核心技术和实践。以下是关于这个主题的详细知识点: 1. **Struts2框架**:Struts2是基于MVC(Model-View-Controller)模式的Java Web...

    Struts Hibernate Spring 集成开发宝典springcore

    《Struts Hibernate Spring 集成开发宝典springcore》是一部深入探讨企业级Java应用开发的经典教程,专注于三大主流框架的整合与实践。Struts、Hibernate和Spring是Java Web开发中的三大支柱,它们各自在MVC(模型-...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例.rar

    -Eclipse、Struts、Hibernate及Spring整合应用案例》是针对Java企业级开发的一个深度学习资源,涵盖了四个核心的技术领域:Eclipse集成开发环境、Struts MVC框架、Hibernate对象关系映射工具以及Spring框架。...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ...

    JavaWeb-Hibernate-Struts2-Spring2

    - **Spring2.0中文教程.chm**:这个教程应该讲解了Spring2的核心特性,如IoC、AOP,以及如何整合其他框架,如Spring与Hibernate的集成。 - **JavaWeb标签大全.CHM**:这可能是JavaWeb开发中JSP标签的集合,包括内置...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例 PDF及光盘ISO

    它涵盖了Java企业级开发中的四个关键技术和框架:Eclipse集成开发环境(IDE)、Struts MVC框架、Hibernate对象关系映射(ORM)框架以及Spring框架。这本书通过丰富的实例,详细解析了如何将这些技术有效地整合在一起...

    struts2-spring-plugin-2.3.4.jar

    Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...

    Struts Hibernate Spring集成开发宝典 源码

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(带数据库)

    Java EE是企业级应用开发的重要框架,而"精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码"的资源提供了丰富的实践学习材料,旨在帮助开发者深入了解和掌握Java后端开发技术。这个项目案例涵盖了四...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Struts2集成,Spring可以作为Struts2的Action的依赖注入容器,通过Spring的ApplicationContext获取服务层对象,实现业务逻辑处理。 - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取...

Global site tag (gtag.js) - Google Analytics