一、核心配置文件
<!-- 1.先加载数据源 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 1.源文件 -->
uname=root
upwd=root
driver_Class=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/tap_water?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&serverTimeZone=UTC
initPoolSize=20
maxPoolSize=200
<!-- 2.配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 读取配置文件db.properties中的参数 (注意properties中的name不能与Spring中的name发生冲突) -->
<property name="user" value="${uname}"></property>
<property name="password" value="${upwd}"></property>
<property name="driverClass" value="${driver_Class}"></property>
<property name="jdbcUrl" value="${url}"></property>
<property name="initialPoolSize" value="${initPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
</bean>
<!-- 3.配置sessionFactory -->
<bean id='sessionFactory'
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 3.1 引入数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 3.3 加载hibernate映射文件,加载全部的hbm文件 -->
<property name="mappingLocations"
value="classpath:top/youshang520i/www/pojo/*.hbm.xml"></property>
<property name="hibernateProperties">
<props>
<!-- 设置sql可见 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 设置格式化sql -->
<prop key="hibernate.format_sql">true</prop>
<!-- 使用线程开启本地事物 -->
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
<!-- <prop key="hibernate.current_session_context_class">jta</prop> -->
<!-- 指定存储数据与取数据时的编码格式 -->
<prop key="hibernate.connection.useUnicode">true</prop>
</props>
</property>
</bean>
<!-- 4.配置事务 -->
<bean id='transactionManager'
class='org.springframework.orm.hibernate5.HibernateTransactionManager'>
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 5.配置事务属性 -->
<tx:advice id='myAdvice' transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<!-- 6.配置事务切点 -->
<aop:config>
<!-- 需要添加事务的方法 -->
<aop:pointcut expression="execution(* top.youshang520i.www.dao.impl.*.*(..))"
id="myCut" />
<aop:advisor advice-ref="myAdvice" pointcut-ref="myCut" />
</aop:config>
一 一、配置dao.xml
<import resource="applicationContext-core.xml"/>
<bean id='testDaoImpl' class="top.youshang520i.www.dao.impl.TestDaoImpl">
<property name="sessionFactory" ref="sessionFactory" ></property>
</bean>
一 二、配置biz.xml
<import resource="applicationContext-dao.xml"/>
<bean id="testBizImpl" class="top.youshang520i.www.biz.impl.TestBizImpl">
<property name="itestDao" ref="testDaoImpl"></property>
</bean>
一 三、配置bean.xml
<!-- scope表示每次都新new一个对象-->
<bean id="syEmp" class="top.youshang520i.www.pojo.SyEmp" scope="prototype" ></bean>
一 四、配置Service.xml
<import resource="applicationContext-bean.xml"/>
<import resource="applicationContext-biz.xml" />
<bean id='syArea' class="top.youshang520i.www.pojo.SyArea"></bean>
<bean id="testService" class="top.youshang520i.www.service.TestService">
<property name="itestBiz" ref="testBizImpl"></property>
<property name="syArea" ref="syArea"></property>
</bean>
二、需要依赖的jar包(使用maven)
<!--jar版本 -->
<properties>
<spring.version>5.0.8.RELEASE</spring.version>
<struts.version>2.5.13</struts.version>
<hibernate.version>5.3.2.Final</hibernate.version>
<c3p0.version>0.9.5.2</c3p0.version>
</properties>
<!-- 添加Hibernate依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- spring依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring对orm的支持依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 引入Spring 的AspectJ依赖,解析事务切点 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 引入数据库连接池C3P0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0.version}</version>
</dependency>
<!-- 引用struts2框架核心依赖 start -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- 引用struts2框架核心依赖 end -->
<!-- struts2对spring的支持依赖 start -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- struts2对spring的支持依赖 end -->
三、配置web.xml
<!--把版本设置为3.1-->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<!-- 加载applicationContext.xml -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<!-- 加载struts2的核心过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置spring监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 注意上面的先后顺序 ,可以加过滤器-->
四、配置struts.xml
<!-- 设置可以使用通配符 -->
<global-allowed-methods>regex:.*</global-allowed-methods>
<!-- 需要改动的地方就是class处 -->
<action name="*_*_Service_*" class="{1}Service" method="{2}">
<result name="success" type="redirect">page/{3}.jsp</result>
</action>