Spring、Struts2、Hibernate集成开…
2014-04-18 13:33
197 查看
只要是JavaEE开发那必然会牵扯到三大框架整合开发,当然绝大多数公司都有自己的框架,而且把三大框架都整合好了,你可能只需简单的配置就可以用了,但是你还是要会最基础的三大框架整合,下面我们就简略的说一下。
版本:spring2.5 + struts
2.1.6 + hibernate3.2
整合主要步骤:
一、Spring整合Struts2
1、
在web.xml中
加载AppliationContext采用listener方式:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-config/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!--
配置struts2前端控制器
-->
<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>*.action</url-pattern>
</filter-mapping>
2、
在struts.xml中
添加Action由spring创建
<constant name="struts.objectFactory"
value="spring" />
注意:Action中的class是个“逻辑名称”要与application中bean
的id名一样
具体代码如下:
<struts>
<constant name="struts.objectFactory"
value="spring" />
<package name="user"
extends="struts-default">
<action name="login" method="login"
class="LoginAction">
<result
name="success">/success.jsp</result>
</action>
</package>
</struts>
3、
在applicationContext.xml中
实际处理的Action,scope="prototype",该属性说明Action可以生成多个
具体代码如下:
<bean id="LoginAction"<
4000
/i>
scope=[i]"prototype" class="action.LoginAction"
/>
<!--以上完成了Struts2与Spring的整合-->
二、Spring整合Hibernate
以下配置全部是在applicationContext.xml中
1、配置数据源
Spring内置实现
DriverManagerDataSource
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property
name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property
name="url">
<value>jdbc:mysql://localhost:3306/test</value>
</property>
<property
name="username">
<value>root</value>
</property>
<property
name="password">
<value></value>
</property>
</bean>
2、配置sessionFactory
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property
name="dataSource">
<ref bean="dataSource"
/>
</property>
<property
name="mappingResources">
<list>
<value>domain/User.hbm.xml</value>
</list>
</property>
<property
name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop
key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
3、配置Dao
<bean id="userDao"
class="dao.UserDaoHibernateImpl">
<property
name="sessionFactory">
<ref bean="sessionFactory"
/>
</property>
</bean>
注意:以上配置是要求Dao
必须继承自HibernateDaoSupport
4、事务:
① Spring事务机制
声明式事务、事务管理器
②
配置事务管理器
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property
name="sessionFactory">
<ref bean="sessionFactory"
/>
</property>
</bean>
<!-- TransactionAdvice -->
<tx:advice id="txAdvice"
transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="update*"
propagation="REQUIRED" />
<tx:method name="*"
propagation="SUPPORTS" read-only="true"
/>
</tx:attributes>
</tx:advice>
<!--通过AOP
完成织入 -->
<aop:config>
<aop:advisor pointcut="execution(*
service.*(..))"
advice-ref="txAdvice" />
</aop:config>
以上完成了整个SSH的整合
下面补充Spring与JDBC的整合
数据源的配置同上
<bean id="userDao"
class="dao.userDaoImpl">
<property name="dataSource"
ref="dataSource" />
</bean>
<!--
注意:以上配置是要求dao
继承JdbcDaoSupport -->
<!-- JDBC事务配置,TransactionManager依赖于dataSource -->
<!-- TransactionManager
-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"
ref="dataSource" />
</bean>
<!-- TransactionAdvice -->
<tx:advice id="tsAdvice"
transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"
propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!--
通过AOP
完成织入 -->
<aop:config>
<aop:pointcut id="pc"
expression="execution(* dao.userDao.*(..))"
/>
<aop:advisor advice-ref="tsAdvice"
pointcut-ref="pc" />
</aop:config>
相关文章推荐
- spring+hibernate+struts2的集成
- 集成Struts2 spring hibernate使用注解
- SSH开发环境的配置:web.xml、Spring集成hibernate和Spring集成Struts2
- Struts2 Spring3 Hibernate3 菜鸟教程 集成注解版本
- spring和hibernate集成成功后,集成struts2的后,启动tomcat报错,求解
- springboot 集成hibernate 集成struts2
- Struts2 Spring3 Hibernate3 菜鸟教程 集成xml版本-2
- Struts2 Spring3 Hibernate3 菜鸟教程 集成xml版本-1
- Struts2,spring&JPA(Hibernate)的集成
- SSH支持Annotation集成 (Struts2 Spring3 Hibernate3)
- S2SH的集成(Struts2,Spring,Hibernate)----青软S2SH(笔记)
- Spring,Struts2,Hibernate三大框架的集成(SSH)
- Struts2 2.5+ spring-framework-4.3.2+hibernate-5.2.1+jdbc集成
- hibernate-JPA,struts2,spring三大框架整合的步骤
- 关于Spring3 Hibernate3 Struts2架构中各个包用处的学习。
- spring3 与 Hibernate4集成报错 No Session found for current thread
- 整合Struts2,Hibernate和Spring的一个简单例子
- struts2,hibernate4,spring3配置时问题汇总及解决办法
- SSHJ:Spring整合Struts2、Hibernate、JBPM4
- Struts2与Spring集成