SSH系统集成笔记:
集成目标:
1.SPRING 作为IOC容器管理struts的Action,hibernate的DAO、Session。
2.使用SPRING的AOP概念管理hibernate事务。
3.使用SPRING与其他系统框架集成组件。
步骤:
1.引入Spring类库
2.引入hibernate类库
3.引入struts类库
注意: 在引入以上类库时候,可以会出现类库包冲突的情况,以保持最新包为原则。
4.加入spring的配置文件, applicationContext.xml
5.加入hibernate配置文件,hibernate.cfg.xml
6.加入struts配置文件,struts-config.xml
7.集成hibernate事务管理,配置sessionfactory为org.springframework.orm.hibernate3.LocalSessionFactory,配置事务管理器为org.springframework.orm.hibernate3.HibernateTransactionManager,配置事务的传播特性,使用<tx:advice>元素,通过<tx:attributes>配置具体方法名的事务传播特性。使用spring的AOP作用与具体目标对象上<aop:advisor>;
8.将DAO对象集成org.springframework.orm.hibernate3.support.HibernateDAOSupport.通过HibernateTemplate实现数据测CRUD。
9.将hibernate的DAO对象注入到业务逻辑层,将业务逻辑层对象配置进IOC容器。
至此:hibernate和spring已经集成完毕。需要注意,管理hibernate事务的sessionFactory和DAO实现的SessionFactory必须为同一SessionFactory。
10.配置struts。
配置web.xml,配置ActionServlet拦截所有strtus请求。
新建struts的资源文件 resourceApplication.properties。
配置struts-config.xml文件,将资源文件加入到struts-config.xml中。
11.集成struts的Action配置到Spring的IOC容器。
将所有的Action配置到spring的IOC配置文件中,通过name唯一标识,而不使用ID,name元素的内容与struts的action配置节的path一致。
将struts配置文件中action节中type属性统一修改成org.springframework.web.struts.DelegatingActionProxy,通过其调用spring的beanfacotry创建action对象并将请求转发给目标aciton。
将org.springframework.web.context.ContxtLoaderListener监听器配置到web.xml中,并配置contextConfigLocation 参数,用于注入所有的配置文件路径。
12.配置spring对各个框架的集成。
配置字符处理类。
陪孩Hibernate的session管理类。
13.其他:
引入对应数据库的链接包。
加入log4j.xml配置文件。
配置例子:
web.xml中:
=====================================================
applicaton-commons.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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" >
<!-- 配置事务 -->
<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
<!-- 配置Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="managerAdvice">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="lenderBook" propagation="REQUIRED" />
<tx:method name="returnBook" propagation="REQUIRED" />
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置spring AOP进行事务拦截处理 -->
<aop:config>
<!--
<aop:pointcut id="managerPointcut" expression="execution(* com.ebook.manager.*.*(..))"/>
-->
<!-- -->
<aop:pointcut id="managerPointcut" expression="execution(* com.ebook.dao.CommonDAOSupport.*(..))"/>
<aop:advisor id="managerAdvisor" pointcut-ref="managerPointcut" advice-ref="managerAdvice"/>
</aop:config>
</beans>
==========================================================
application-beans.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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" >
<!-- 由于DAO继承了HiberaneDAOSupport,所以需要注入SessionFactory对象,此SessionFactory就为ApplicationContext-commons.xml中的sessionFactory-->
<bean id="bookDAO" class="com.ebook.dao.BookDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="cardDAO" class="com.ebook.dao.LenderCardDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="lenderRecordDAO" class="com.ebook.dao.LenderRecordDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="returnRecordDAO" class="com.ebook.dao.ReturnRecordDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置struts的Action ,注意用name属性唯一标识,注入业务逻辑对象。-->
<bean name="/login" class="com.demo.action.UserAction" >
<property name="usermanager" ref="usermanager" />
</bean>
</beans>
=================================================================
hibernate.cfg.xml 此配置可以加入到spring的配置文件中。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost:1433/ebook</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect" >org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl"> true</property>
<mapping resource="com/ebook/dao/Book.hbm.xml" />
<mapping resource="com/ebook/dao/LenderCard.hbm.xml" />
<mapping resource="com/ebook/dao/LenderRecord.hbm.xml" />
<mapping resource="com/ebook/dao/ReturnRecord.hbm.xml" />
</session-factory>
</hibernate-configuration>
==========================================================
web.xml
<?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">
<!-- Standard Action Servlet Configuration (with debugging) -->
<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>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
=============================================
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="userinfo" type="com.demo.actionform.User"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" name="userinfo"
scope="request">
<forward name="success" path="/success.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.demo.struts.ApplicationResources" />
</struts-config>
分享到:
相关推荐
标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...
Struts2、Spring和Hibernate是Java企业级开发中常用的三个框架,它们构成了SSH(Struts2、Spring、Hibernate)框架体系,广泛应用于构建MVC(Model-View-Controller)架构的Web应用程序。Ajax(Asynchronous ...
总结来说,"Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)"项目展示了如何使用SSH框架来构建一个功能完善的书籍管理系统。Struts处理用户请求,Spring管理应用组件并提供事务支持,...
Struts2、Spring、Hibernate和MySql这四个技术是Java Web开发中常用的一套经典组合,被称为SSH框架。这个注册登录系统就是利用这些技术构建的。下面将详细讲解这套组合的相关知识点。 首先,Struts2是一个强大的MVC...
然而,随着技术的发展,Struts1已被Struts2取代,Spring也发展到了更高版本,而Hibernate则更新到了5.x。尽管如此,理解这种整合方式对于理解现代Java Web框架的工作原理仍然具有重要的参考价值。
在Java Web开发领域,Struts1、Hibernate以及Spring这三个框架被广泛应用于构建企业级应用系统。Struts1作为MVC架构的一种实现,负责处理用户的请求并调度响应;Hibernate作为一个对象关系映射(ORM)框架,用于简化...
Struts 2、Hibernate 和 Spring 是 Java Web 开发中的三个重要框架,它们组合起来可以构建高效、可维护的Web应用程序,尤其是对于复杂的企业级论坛系统。这个基于Struts 2+Hibernate+Spring实现的论坛系统,充分利用...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于对象关系映射(ORM),而Spring则提供了全面的...
1. 引入相关库:将Struts2、Hibernate和Spring的jar包引入项目。 2. 配置Struts2:配置struts.xml文件,定义Action及其结果页面。 3. 配置Hibernate:配置hibernate.cfg.xml文件,设置数据库连接信息,并创建实体类...
典型模型与项目实战大全>> 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 ... 第1篇 开发工具及框架概述 第1章 开发前奏 ...第27章 商业银行设备巡检系统(Struts 2.X+Spring+Hibernate)
典型模型与项目实战大全>> 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 由于上传限制 共分成4卷 请手动搜索其它3卷下载 ...第27章 商业银行设备巡检系统(Struts 2.X+Spring+Hibernate)
典型模型与项目实战大全>> 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 ... 第1篇 开发工具及框架概述 第1章 开发前奏 ...第27章 商业银行设备巡检系统(Struts 2.X+Spring+Hibernate)
在"javaee Struts2+Hibernate+Spring学生成绩管理系统"中,这三种技术被集成在一起,形成了一个强大的开发框架,用于实现对学生成绩的有效管理。 Struts2是Apache软件基金会的一个开源项目,它是基于MVC(Model-...
【标题】:“全套源码-论坛系统(Struts 2+Hibernate+Spring实现)”揭示了一个基于Java技术栈开发的论坛系统,它整合了三个重要的框架:Struts 2、Hibernate和Spring。这个项目旨在提供一个完整的解决方案,帮助...
标题中的"sshdemo使用的包"指的是一种基于SSH(Struts2、Spring、Hibernate)框架的演示项目,其中还包含了MySQL和Oracle两种数据库的JDBC驱动,这是一套常见的Java Web开发技术栈。让我们详细了解一下这些技术: 1...
【标题】"在线音乐网站(Struts2+hibernate+spring)" 是一个基于Java技术栈构建的Web应用程序,旨在提供音乐流媒体服务。这个项目整合了三个关键的开源框架:Struts2、Hibernate和Spring,它们在Java Web开发中扮演...
1. **配置环境**:确保安装了JDK,设置好环境变量,下载并导入Struts2、Hibernate和Spring的jar包到项目的类路径。 2. **配置Struts2**:创建struts.xml配置文件,定义Action、Result和拦截器栈。添加Struts2的过滤...
Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,共同构建出高效、可维护的系统。本整合主要关注Spring 3.0.0版本,它作为轻量级的IoC(Inversion of Control,...
Struts1、Spring和Hibernate是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而SSH(Struts1 + Spring + Hibernate)则是这三者整合的解决方案,旨在提供一个高效、灵活且可扩展的开发环境。...
1. **添加依赖**:在项目的pom.xml文件中,添加Struts2、Spring和Hibernate的相关依赖库。 2. **配置Struts2**:创建struts2的配置文件(struts.xml),定义Action类和结果类型。同时,在web.xml中配置Struts2的...