`

最基本的整合Struts2Spring3Hibernate3注意的地方

    博客分类:
  • SSH
阅读更多
MyEclipse、Struts2.1、Spring3.0、Hibernate3.3框架整合详细图解:
下载:http://download.csdn.net/source/3276458
在线:http://blog.sina.com.cn/s/blog_6ffd47bf0100rkw6.html

选择jar的步骤:
1.Struts 2:选择Struts Core(核心库)和Struts 2 Spring(包含集成Spring插件)的两个最基本库,其他根据需要可以添加。
2.选择Spring3.0版本,类库选择 Spring 3.0 AOP、Spring 3.0 Core、Spring 3.0 Persistence Core、Spring 3.0 Persistence JDBC、Spring 3.0 Web 5个库,并勾选复制到本地WEB-INF/lib目录。
3.选择Hibernate3.3版本,如果要使用注解可选中启用annotation,但是会对后续自动生成实体类造成麻烦,不选就是用xml文件形式进行实体类映射,默认勾选Hibernate 3.3 Annotation & Entity Manager、Hibernate 3.3 Core Libraries两个类库,复制jar文件到本地WEB-INF/lib文件夹下。

项目结构:
view->action->service->Dao->Database

1. 包列表:
antlr-2.7.6.jar
aopalliance-1.0.jar
cglib-2.2.jar
classworlds-1.1.jar
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.fileupload-1.2.0.jar
com.springsource.org.apache.commons.httpclient-3.1.0.jar
com.springsource.org.apache.commons.lang-2.4.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
com.springsource.org.apache.log4j-1.2.15.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
com.springsource.org.codehaus.jackson.mapper-1.0.0.jar
commons-beanutils-1.7.0.jar
commons-chain-1.2.jar
commons-collections-3.2.jar
commons-dbcp.jar
commons-digester-2.0.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
commons-validator-1.3.1.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
freemarker-2.3.16.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-entitymanager.jar
hibernate-validator.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jotm.jar
json-lib-2.1-jdk15.jar
jta-1.1.jar
log4j-1.2.14.jar
mysql-connector-java-5.0.8-bin.jar
ognl-3.0.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.aspects-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.instrument-3.0.5.RELEASE.jar
org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.orm-3.0.5.RELEASE.jar
org.springframework.oxm-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.portlet-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
org.springframework.web.struts-3.0.5.RELEASE.jar
oro-2.0.8.jar
persistence.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
spring-beans-2.5.6.jar
spring-context-2.5.6.jar
spring-core-2.5.6.jar
spring-web-2.5.6.jar
sslext-1.2-0.jar
struts2-convention-plugin-2.2.1.jar
struts2-core-2.2.1.jar
struts2-embeddedjsp-plugin-2.2.1.jar
struts2-json-plugin-2.2.1.jar
struts2-spring-plugin-2.2.1.jar
xapool.jar
xwork-core-2.2.1.jar
自动生成的时候,记得去掉低版本的重复包,余下的75个jar.
2. web.xml
-------------------------------------
<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
	</context-param>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


3. struts.xml 配置的Action的时候,class属性只给出beanId的名字就可以了。

4. 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" 
	xmlns:p="http://www.springframework.org/schema/p"
	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-3.0.xsd 
	http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://localhost:3306/asl_daily_report">
		</property>
		<property name="username" value="root"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/xml/NewsInf.hbm.xml</value>
			</list>
		</property>
	</bean>
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
	    <property name="sessionFactory" ref="sessionFactory"/>  
	</bean> 
	<!-- #########################  DAO类配置  ############################### -->
	<bean id="newsInfDAO" class="com.dao.impl.NewsInfDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	
	<!-- #########################  Service类配置  ############################### -->
	<bean id="newsInfoService" class="com.service.impl.NewsInfoService">
		<property name="newsInfDAO" ref="newsInfDAO"></property>
	</bean>
	
	<!-- #########################  Action类配置  ############################### -->
	<bean id="newsInfAction" class="com.action.NewsInfAction">
		<property name="newsInfoService" ref="newsInfoService"></property>
	</bean>
	
	
	<!-- #########################  Spring事务配置  ############################### -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="insert*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="save*" propagation="REQUIRED"/>
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:pointcut  id="allServicesMethods" expression="execution(* com.service.impl.*.*(..))"/>
		<aop:advisor advice-ref="txAdvice"  pointcut-ref="allServicesMethods"/>
	</aop:config>	
</beans>


5. 获得HibernateTemplate的方法
I:
private HibernateTemplate hibernateTemplate; 

II:
@Resource(name="hibernateTemplate")  
		public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {  
			this.hibernateTemplate = hibernateTemplate;  
		}


6. 在Struts2获得WebApplicationContext的方法
I: Action实现implements ServletRequestAware,并实现setServletRequest()方法。
II:
public void setServletRequest(HttpServletRequest request) {  
			// TODO Auto-generated method stub  
			this.request = request;  
			  
		} 

III:以下是获得的方法
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());  
		ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());//失败时抛出异常  
		ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext()); //失败时返回null 
		WebApplicationContext webApplicationContext = (WebApplicationContext)request.getSession().getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); 



Spring3跟hibernate整合的配置总结:其实配置一个Dao需要4个Bean。数据源Bean被装配到会话工厂Bean;会话工厂Bean被装配到HibernateTemplate;最后HibernateTemplate被装配到Dao的Bean。为了让事情变得简单一些,Spring停工了HibernateDaoSupport,它能够让我们把会话工厂Bean直接装配到Dao类,它会自动创建一个HibernateTemplate供Dao使用。只需要Dao集成HibernateDaoSupport类就可以了,在使用HibernateTemplate时调用getHibernateTemplate() 方法即可。
分享到:
评论

相关推荐

    Struts2 Spring3 Hibernate3.3框架整合

    Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。包含有事务的配置以及运用。使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程...

    Struts2 Spring3 Hibernate4 框架完美整合

    Struts2、Spring3和Hibernate4是Java Web开发中三个非常重要的开源框架,它们分别负责MVC模式中的表现层、业务层和数据访问层。这三个框架的整合,通常被称为SSH整合,可以提供一个高效、灵活且功能强大的企业级应用...

    用maven整合struts+spring+hibernate

    总结,整合Struts 2、Spring和Hibernate可以创建一个高效的企业级应用架构,它们各自发挥优势,共同支撑起复杂的业务需求。通过Maven的管理,这种整合变得更加有序和可控,为开发者提供了便利的开发环境。在实际工作...

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

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

    struts+spring+hibernate整合

    通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...

    整合struts+spring+hibernate实例

    通过以上步骤,我们成功地在WebLogic服务器上实现了Struts、Spring和Hibernate的整合,创建了一个Struts Portlet,从而能够在portlet环境下利用这三个框架的强大功能,提高开发效率和代码质量。这个实例不仅涵盖了...

    struts+spring+hibernate三大框架整合

    **Spring整合Struts** Spring整合Struts主要有三种方式: 1. **使用Spring的ActionSupport**:Action类直接继承自Spring的ActionSupport,通过`super.getWebApplicationContext()`获取Spring上下文,然后通过`...

    S2SH整合 struts2 spring4 hibernate4

    5. **Struts2与Hibernate整合**:在Struts2的Action中,通过Spring注入Hibernate的DAO层,实现业务逻辑与持久化层的解耦。Action类不直接操作Session,而是调用DAO方法来完成数据的CRUD操作。 通过这样的整合,S2SH...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    SSH整合,全称为Struts、Spring和Hibernate的集成,是一种常见的Java Web开发框架组合,用于构建高效、可维护的企业级应用程序。在这个例子中,我们看到的是一个基于SSH的用户注册功能的实现,使用的开发工具是...

    struts2 spring2 hibernate3整合源代码+jar包

    4. **整合Struts2与Hibernate**:通过Spring的Data Access/ORM支持,将SessionFactory注入到DAO中,然后在DAO中通过Session执行数据库操作。 在这个整合的源代码中,`books.sql` 可能是数据库脚本文件,用于创建...

    Struts2 Spring3 Hibernate3 整合必须包(很完整)

    整合Struts2、Spring3和Hibernate3可以实现高效的MVC架构,其中Struts2处理前端请求,Spring3作为整体的控制层,管理对象和事务,而Hibernate3则负责数据访问。整合的关键在于配置: 1. **配置Struts2-Spring插件**...

    struts2和spring和Hibernate整合的jar包

    在整合Struts2、Spring和Hibernate时,我们通常会遇到一些包冲突的问题,尤其是在使用IDE如MyEclipse时。这可能是由于不同库版本之间的不兼容性,或者是重复引入了相同的类导致的。解决这些问题通常需要仔细检查项目...

    struts2+spring+hibernate 整合的jar包

    4. **整合Struts2和Spring**:使用Struts2的Spring插件,将Spring管理的Bean注入到Struts2的Action中,通常通过`&lt;struts-plugin&gt;`标签进行配置。 5. **配置Struts2**:创建Struts2的配置文件(struts.xml),定义...

    struts+spring+hibernate实现图书修改和删除

    SSH整合的关键在于配置文件,包括Struts 2的struts.xml、Spring的applicationContext.xml和Hibernate的hibernate.cfg.xml。这些文件定义了各组件之间的关系和行为。例如,struts.xml中配置Action类及其结果视图,...

    struts2 spring hibernate整合的简单登录代码

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...

    struts2 spring hibernate整合要点、注意点

    ### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...

    struts,spring,hibernate整合

    整合Struts、Spring和Hibernate的主要目的是消除各框架之间的耦合,实现更好的解耦和模块化。在SSH整合中,通常会使用Spring来管理Struts的Action和Hibernate的SessionFactory,Spring的AOP可以用来处理事务管理。...

    Struts+Spring+Hibernate整合教程.pdf

    整合Struts、Spring和Hibernate可以构建出高度模块化的应用,提高开发效率和代码质量。然而,随着Java EE技术的发展,现代Web应用更多地转向Spring Boot、Spring MVC和MyBatis等更现代的解决方案,它们在易用性、...

Global site tag (gtag.js) - Google Analytics