Spring整合struts2+hibernate步骤

spring配置文件方式整合

1. 导入struts2的插件包

       导入spring-web-3.2.9.jar 


    2. 把所有的struts2的action,当成bean来管理 


    3. Spring整合Struts,使用的IOC容器是WebApplicationContext
       修改web.xml,tomcat启动时加载beans.xml

        <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


        public class ContextLoaderListener extends ContextLoader implements ServletContextListener {}


        public ContextLoaderListener(WebApplicationContext context) {}


  4、配置bean对象之间的依赖注入

      注意:Spring所有bean对象,默认是单例模式
            但是struts2的action不能使用单例,应该使用prototype模式

     bean对象的scope :  singleton (默认)
                        prototype  ---   非单例模式
                        request,session ,global session  和web层耦合了,不建议使用


  @Component = @Controller + @Service + @Repository


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.xsd
			 http://www.springframework.org/schema/tx
			 http://www.springframework.org/schema/tx/spring-tx.xsd
			 http://www.springframework.org/schema/aop
			 http://www.springframework.org/schema/aop/spring-aop.xsd">
			 
 	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
	</bean>
	
	<bean id="bookDao" class="com.icss.dao.hib.BookHibDao">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<bean id="userDao" class="com.icss.dao.hib.UserHibDao">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	
	<bean id="bookBiz" class="com.icss.biz.hib.BookHibBiz">
		<property name="bookDao" ref="bookDao"></property>
	</bean>
	
	<bean id="userBiz" class="com.icss.biz.hib.UserHibBiz">
		<property name="bookDao" ref="bookDao"></property>
		<property name="userDao" ref="userDao"></property>
	</bean>
	
	<bean id="bookAction" class="com.icss.control.BookAction" scope="prototype">
		<property name="bookBiz" ref="bookBiz"></property>
	</bean>
	
	<bean id="userAction" class="com.icss.control.UserAction" scope="prototype">
		<property name="bookBiz" ref="bookBiz"></property>
		<property name="userBiz" ref="userBiz"></property>
	</bean>
	
	<bean id="shopCarAction" class="com.icss.control.ShopCarAction" scope="prototype">
		<property name="bookBiz" ref="bookBiz"></property>
	</bean>
	
	<bean id="adminAction" class="com.icss.control.back.AdminAction" scope="prototype">
		<property name="bookBiz" ref="bookBiz"></property>
		<property name="userBiz" ref="userBiz"></property>
	</bean>
	
	<!-- 事务管理器 -->
	<bean id="txManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<!-- 切面设置 -->
	<aop:config>
		<aop:pointcut id="serviceMethod" expression="execution(* com.icss.biz.*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
	</aop:config>
	
	<!-- 切面策略 -->
	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="checkoutOk*" propagation="REQUIRED" rollback-for="Throwable" />
			<tx:method name="*" read-only="true" />
		</tx:attributes>
	</tx:advice>
</beans>


struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<constant name="struts.i18n.encoding" value="utf-8"></constant>
	<package name="YouKeModel" extends="struts-default" namespace="/" >
	
		<action name="book_*" class="bookAction" method="{1}">
			<result name="getAllBooksOK">/WEB-INF/main/main.jsp</result>
			<result name="error">/error.jsp</result>
			<result name="getBookDetailOK">/WEB-INF/main/BookDetail.jsp</result>
		</action>
		
		<action name="user_*" class="userAction" method="{1}">
			<result name="loginGET">/WEB-INF/main/login.jsp</result>
			<result name="loginOK" type="chain">book_getAllBooks</result>
			<result name="loginFail">/WEB-INF/main/login.jsp</result>
			<result name="logoutOK" type="redirectAction">book_getAllBooks</result>
			<result name="error">/error.jsp</result>
		</action>
	
	</package>
	
	<package name="UserModel" extends="struts-default" namespace="/user" >
		<action name="shopCar_*" class="shopCarAction" method="{1}">
			<result name="shopCarAddOK" type="chain">shopCar_shopCarDisplay</result>
			<result name="shopCarDisplayOK">/WEB-INF/main/shopCar.jsp</result>
			<result name="shopCarRemoveOK" type="chain">shopCar_shopCarDisplay</result>
			<result name="loginPlease">/WEB-INF/main/login.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
		
		<action name="user_*" class="userAction" method="{1}">
			<result name="checkOutOK">/WEB-INF/main/CheckOut.jsp</result>
			<result name="payMoneyOK">/WEB-INF/main/CheckoutOk.jsp</result>
			<result name="loginPlease">/WEB-INF/main/login.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>
	
	<package name="AdminModel" extends="struts-default" namespace="/admin" >
		<action name="admin_*" class="adminAction" method="{1}">
			<result name="buyInfoDisplayOK">/WEB-INF/back/BuyInfoList.jsp</result>
			<result name="bookAddOK">/WEB-INF/back/BookAdd.jsp</result>
			<result name="bookAddGET">/WEB-INF/back/BookAdd.jsp</result>
			<result name="error">/error.jsp</result>
				<result name="input">/error/FileUploadError.jsp</result>
				<interceptor-ref name="fileUpload">
					<param name="allowedTypes">image/bmp,image/png,image/jpeg</param>
					<param name="maximumSize">102400</param>
				</interceptor-ref>
				<interceptor-ref name="defaultStack" />
		</action>
	</package>
	
</struts>    




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值