所用工具: Struts2(2.3版本)、spring(4.2.2版本)、hibernate(5.2.2版本)、tomcat(8.0版本)、jdk(1.8版本)、SQL server2008
关于在搭建过程中遇到的jar包版本兼容问题及各jar包的作用将在另一篇中介绍
步骤一:导入jar包
- Struts2:将struts-2.3.30-apps中, struts2-blank项目所用的jar包导入
- spring :将spring4.2.2版本的如下jar包导入
- 将5.2.2版本的hibernate中的required文件夹下的jar包导入
4.将5.2.2版本的hibernate中的optional下的有关c3p0的jar包导入
5.导入整合struts2和spring所需的 struts2-spring-plugin jar包、导入 commons-logging jar包、导入数据库驱动包。
上述jar包遇到有部分相同时选择最新版的删去旧版
步骤二:配置文件
1.配置web.xml(具体配置步骤请参考Struts2及spring)
<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>
<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>
2.配置struts.xml(具体配置步骤请参考Struts2)
<struts>
<!-- 使用"!"进行动态方法调用,需要设置如下常量 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 整合spring -->
<constant name="struts.objectFactory" value="spring" />
<package name="ssh003" extends="struts-default">
<action name="Index" class="Index" method="showAllCard">
<result name="show">/WEB-INF/show.jsp</result>
</action>
</package>
</struts>
3.配置applicationContext.xml(具体配置步骤请参考hibernate)
<bean id="mySessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 注入连接池,包含了数据库用户名,密码等等信息 -->
<property name="dataSource" ref="myDataSource"/>
<!-- 配置Hibernate的其他的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.connection.autocommit">false</prop>
<!-- 开机自动生成表 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/entity/BookCard.hbm.xml</value>
</list>
</property>
</bean>
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 配置连接数据库所需的驱动、url、账号密码 -->
<property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="jdbcUrl" value="jdbc:sqlserver://localhost:1433;DatabaseName=CardDB"/>
<property name="user" value="sa"/>
<property name="password" value="123456"/>
<!-- 每300秒检查所有连接池中的空闲连接 -->
<property name="idleConnectionTestPeriod" value="300"></property>
<!-- 最大空闲时间,900秒内未使用则连接被丢弃。若为0则永不丢弃 -->
<property name="maxIdleTime" value="900"></property>
<!-- 最大连接数 -->
<property name="maxPoolSize" value="2"></property>
</bean>