您的位置:首页 > 编程语言 > Java开发

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>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: