`
sunjiawang
  • 浏览: 16829 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

ssh 整合测试

阅读更多

搞了很久的ssh整合,总是环境的问题而半途而废,甚至让人心灰意冷,今天终于完成了ssh的完美整合,这以为ssh的大门永远的向我敞开了,庆祝一下。

1,注意添加jar的顺序 先添加struts+spring+hibernate 这样子据说可以解决jar的冲突问题,一般是spring和hibernate jar包的冲突,删除冲突的jar包 保留最新的jar包

2,用spring托管hibernate(sessionFactory由spring管理,在sessionFactory中注入dataSource)

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource"/>
		</property>
		<property name="mappingResources">
		<list>
		<value>com/v512/guestbook/model/Guestbook.hbm.xml</value>
		<value>com/v512/guestbook/model/Admin.hbm.xml</value>
		</list>
		</property>
		<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
			<prop key="hibernate.show_sql">true</prop>
		</props>
		</property>		
	</bean>
	
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="oracle.jdbc.driver.OracleDriver">
		</property>
		<property name="url"
			value="jdbc:oracle:thin:@localhost:1521:test">
		</property>
		<property name="username" value="scott"></property>
		<property name="password" value="tiger"></property>
	</bean>

 3,在application中配置好dao和manager,dao层是负责和数据库的交互,也就是説DB是dao的客户,而用hibernate操作数据库必须通过session,session是完成一次的数据库的操作,session通过sessionFactory获取,所以dao持有sessionFactory则可以操作数据库,因此将sessionFactory注入到dao层,而将dataSource注入到SessionFactroy,service负责业务的应用,他的客户是action,因此将manager注入到action中则可以完成一次业务的处理。

 
 <bean id="guestbookDao"
  class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 <bean id="adminDao"
  class="com.v512.guestbook.dao.hibernate.AdminDaoHibernate"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 
 <bean id="guestbookManager"
  class="com.v512.guestbook.service.impl.GuestbookManagerImpl"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="guestbookDao">
   <ref bean="guestbookDao" />
  </property>
 </bean> 
 <bean id="adminManager"
  class="com.v512.guestbook.service.impl.AdminManagerImpl"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="adminDao">
   <ref bean="adminDao" />
  </property>
 </bean></beans> 

整个applicationContext.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource"/>
		</property>
		<property name="mappingResources">
		<list>
		<value>com/v512/guestbook/model/Guestbook.hbm.xml</value>
		<value>com/v512/guestbook/model/Admin.hbm.xml</value>
		</list>
		</property>
		<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
			<prop key="hibernate.show_sql">true</prop>
		</props>
		</property>		
	</bean>
	
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="oracle.jdbc.driver.OracleDriver">
		</property>
		<property name="url"
			value="jdbc:oracle:thin:@localhost:1521:test">
		</property>
		<property name="username" value="scott"></property>
		<property name="password" value="tiger"></property>
	</bean>
	
	<bean id="guestbookDao"
		class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate"
		abstract="false" lazy-init="default" autowire="default"
		dependency-check="default">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	<bean id="adminDao"
		class="com.v512.guestbook.dao.hibernate.AdminDaoHibernate"
		abstract="false" lazy-init="default" autowire="default"
		dependency-check="default">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	
	<bean id="guestbookManager"
		class="com.v512.guestbook.service.impl.GuestbookManagerImpl"
		abstract="false" lazy-init="default" autowire="default"
		dependency-check="default">
		<property name="guestbookDao">
			<ref bean="guestbookDao" />
		</property>
	</bean>	
	<bean id="adminManager"
		class="com.v512.guestbook.service.impl.AdminManagerImpl"
		abstract="false" lazy-init="default" autowire="default"
		dependency-check="default">
		<property name="adminDao">
			<ref bean="adminDao" />
		</property>
	</bean></beans>

 

4,spring就是一个Bean工厂,而再个bean清单都在applicationContext中而如何在应用程序启动的时候就能够加载,这份清单呢?所以还得在web.xml中配置spring配置文件的路径,以及监听。

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
//配置application的路径
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>//配置application加载的监听
文本加载还需要在struts中配置plugIn          
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" />
   </plug-in>                                                                                                                                

这样就能够在应用程序启动就能够初始化静态的单例bean工厂了

5,spring 过滤器的配置

//filter 配置
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
//filter mapping 配置
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 加入springFilter的话要添加spring的web包

6,valiadator的配置(一般是 ValidatorForm)

步骤,添加路径:在/web-inf下加入validator-rules.xml和validations.xml

然后在struts中 要添加插件,错误信息在applicationResource中配置,具体的验证需要在validations.xml的中编写。

 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
   <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validations.xml" />
   </plug-in> 

 

struts中的插件是指明插件的位置,类型,以便应用程序启动时候加载

7,action在spring中的管理

action也可以作为一个bean在spring中管理,在struts中更改action的type为 org.springframework.web.struts.DelegatingActionProxy

eg:

 <action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      parameter="method"
      path="/login"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy"  validate="false" />

 如此这整个配置完毕,如果出现jstl不支持的情况,要把web。xml中的dtd修改为2.4

<web-app 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"
    version="2.4">  

 

 

 

分享到:
评论
1 楼 ytsongjun 2008-07-02  
我学习到了,思路清晰

相关推荐

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    在"SSH整合及测试亲测可用"的项目中,这三大框架被集成在一起,以实现高效的后端逻辑处理。通常,Struts2负责处理HTTP请求,调用业务逻辑;Hibernate则负责数据库操作;而Spring则作为整体的粘合剂,管理它们之间的...

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    SSH整合增删改查全部

    最后,测试和调试是验证SSH整合是否成功的重要步骤。可以通过单元测试或集成测试来确保各个组件正常工作,同时,使用如Eclipse、IntelliJ IDEA等IDE的调试工具可以方便地追踪代码执行过程。 总的来说,SSH整合提供...

    SSH 整合原代码 包括2种方式:注解&xml;配置 (已测试, 原创)

    本资源提供的是SSH整合的原代码,涵盖了通过注解和XML配置两种方式进行整合的方法,并且已经过测试,确保其可行性和原创性。以下是关于SSH整合及这两种配置方式的详细知识: 1. **Struts框架**:Struts是一个基于...

    SSH整合实例源码

    SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...

    SSH整合 银行管理系统

    SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...

    SSH整合例子(SSH例子)

    SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...

    ssh整合实例1 简单易懂的ssh整合,适合初学者

    这个"ssh整合实例1"可能是针对初学者的一个教程,旨在帮助他们理解如何配置和使用SSH来连接到远程服务器。在Linux和Unix系统中,SSH广泛用于执行命令、传输文件以及管理服务器,而其安全性得益于数据的加密。 SSH...

    SSH整合小项目

    SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...

    SSH整合的一个案例

    SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...

    SSH整合原理以及步骤详解

    SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...

    ssh整合jar包

    SSH整合指的是将Struts2、Hibernate和Spring这三个流行的开源Java框架进行集成,以构建高效、模块化的企业级Web应用程序。这三个框架分别负责表现层、持久层和业务逻辑层的管理,SSH整合使得开发者能更好地管理和...

    ssh整合 jar包

    SSH整合是指在Java Web开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以实现高效、灵活和可扩展的业务应用。这些框架分别负责不同的职责:Spring作为核心容器,管理对象的依赖注入;Struts2是MVC...

    一个简单的ssh整合的实例

    11. **测试运行**:通过NetBeans的内置Tomcat服务器或独立的Servlet容器运行项目,验证SSH整合是否成功。 这个实例提供了一个基础的SSH整合学习平台,你可以在此基础上进行功能扩展和性能优化。通过实践,你可以更...

    ssh整合所需jar包

    SSH整合是指将Struts、Spring和Hibernate这三个Java开源框架结合在一起,用于构建高效、可维护的企业级Web应用程序。Struts提供了MVC(Model-View-Controller)架构,Spring强化了依赖注入和事务管理,而Hibernate则...

    SSH整合详细步骤&SSH整合详细步骤

    SSH整合是指将Spring、Struts2和Hibernate三个开源框架整合在一起,实现MVC设计模式的高效开发模式。在这个过程中,Spring作为应用的核心容器,负责管理Bean;Struts2作为表现层框架,处理用户请求和视图展示;...

    SSH整合过程(图)

    完成上述配置后,通过运行简单的测试用例来验证SSH整合是否成功。如果一切正常,你应该能够从客户端发起请求,经过Controller,调用Service,由DAO操作数据库,最后返回结果到View。 SSH整合的关键在于理解每个框架...

    SSH整合的jar包

    SSH整合是指Spring、Struts和Hibernate这三大开源框架的集成,它们在Java Web开发中扮演着重要的角色。Spring提供依赖注入和AOP(面向切面编程),Struts处理MVC模式,而Hibernate则是持久层解决方案,负责数据库...

    SSH整合购物车有上传浏览

    SSH整合购物车有上传浏览是将Secure Shell (SSH) 技术与Web应用程序结合,实现安全的文件上传和购物车功能的过程。SSH是一种网络协议,主要用于加密网络连接,确保数据在传输过程中的安全性。在电子商务网站中,SSH...

Global site tag (gtag.js) - Google Analytics