Spring2.5.6+Hibernate3.3.1+Struts2整合

1、建立Web项目,加入Spring支持,建立Spring配置文件如,beans.xml

        需要加入的包有:


Spring2.5.6+Hibernate3.3.1+Struts2整合
2、加入Hibernate支持
    需要加入的包:
Spring2.5.6+Hibernate3.3.1+Struts2整合
    在spring配置文件中配置(接管)Hibernate:

<!-- 配置Hibernate -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/ssh" />
		<property name="username" value="root" />
		<property name="password" value="654123" />
		<!-- 连接池启动时的初始值 -->
		<property name="initialSize" value="3" />
		<!-- 连接池的最大值 -->
		<property name="maxActive" value="500" />
		<!-- 最大空闲值.当经过一个高峰时间后,
		连接池可以慢慢将已经用不到的连接慢慢释放一部分,
		一直减少到maxIdle为止 -->
		<property name="maxIdle" value="2" />
		<!-- 最小空闲值.当空闲的连接数少于阀值时,
		连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
		<property name="minIdle" value="1" />
	</bean>

	<!-- sessionFactory配置 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mappingResources">
			<list>
			<!-- 接管Hibernate对象映射文件 -->
				<value>com/pas/domain/Employee.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<value>
				hibernate.dialect=org.hibernate.dialect.MySQLDialect
				hibernate.hbm2ddl.auto=update
				hibernate.show_sql=true
				hibernate.format_sql=false
			</value>
		</property>
	</bean>

	<!-- 配置事务管理器 统一管理sessionFactory事务-->
	<bean id="txManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<!-- 启用事务注解-->
	<tx:annotation-driven transaction-manager="txManager"/>



3、配置web.xml文件使项目启动时加载Spring容器
<!-- 指定spring的配置文件,默认从web根目录寻找配置文件, 我们可以通过spring提供的classpath:前缀指定从类路径(src开始)下寻找 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:beans.xml</param-value>
	</context-param>
	
	<!-- tomcat启动时候对Spring容器进行实例化 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>



4、加入Struts支持
    需要加入的包:
Spring2.5.6+Hibernate3.3.1+Struts2整合

web.xml中配置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>/*</url-pattern>
	</filter-mapping>



在Struts.xml文件中,实例如下:
<struts>
        <!--此条配置利用Spring容器来进行Struts对象管理-->
	<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
	<package name="struts2" extends="struts-default" namespace="/">
		<!-- class为Spring beans.xml中的action bean id -->
		<action name="login" class="loginAction">
			<result name="input">/index.jsp</result>
			<result name="login">/index.jsp</result>
			<result name="error">/index.jsp</result>
			<result name="success">/WEB-INF/MainFrame.jsp</result>
		</action>
	</package>

</struts>



注意:
1、在Spring配置文件中配置Action时候:

<!-- 配置Struts Actionbean  -->
	<!-- scope设置为原型可以解决Action单例问题,避免一些线程安全问题 -->
	<bean id="loginAction" scope="prototype" class="com.pas.action.LoginAction">
		<!--此处注入Action需要的Service层接口实现对象,此对象需要首先在本文件中配置为bean-->
            <property name="employeeServiceInter" ref="employeeService"/>
	</bean>

2、在Service层,需要使用事务支持加入注解@Transactional即可,之后使用时Spring自动管理事务的创建提交

至此,SSH基本框架搭建完毕,未完待续,之后还有缓存的加入等等。


你可能感兴趣的:(Spring2.5.6+Hibernate3.3.1+Struts2整合)