1.maven pom.xml文件配置
先创建一个BaseCommon项目,引入搭建spring mvc+spring+hibernate所需包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.testsample</groupId>
<artifactId>BaseCommon</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>BaseCommon</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<!--单元测试包 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- 基础包 -->
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.10.RELEASE</version>
</dependency>
<dependency>
<!-- spring管理SessionFactory -->
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.10.RELEASE</version>
</dependency>
<dependency>
<!-- 字节码类库实现动态注入 -->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.1-GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
<dependency>
<!-- 日志系统 -->
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<!-- 语法分析器 -->
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<!--数据库连接方式 -->
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<!--mysql的数据库连接包 -->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
<dependency>
<!--Spring AOP所要用到的依赖包 -->
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<!-- 日志记录包 -->
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<!-- jackson的核心包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<!-- jackson的数据转换包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<!-- jackson包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<!-- 代理 实现AOP的一种方式 -->
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>5.5.23</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-weaver-build-tools</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<!-- jsp页面的JSTL标签包 -->
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>quartz</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<!-- 服务端模拟页面发送HTTP请求包 -->
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.2.5</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-pdfa</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-xtra</artifactId>
<version>5.5.0</version>
</dependency>
<!-- PDF支持中文的就jar库 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.github.xuwei-k</groupId>
<artifactId>html2image</artifactId>
<version>0.1.0</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<build>
<finalName>BaseCommon</finalName>
</build>
</project>
在正式网站上配置pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.testsample</groupId>
<artifactId>test-sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>Testsample</name>
<url>http://maven.apache.org</url>
<properties>
<jersey-version>0.0.1-SNAPSHOT</jersey-version>
</properties>
<dependencies>
<dependency>
<groupId>tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>5.5.23</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.5-FINAL</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.testsample</groupId>
<artifactId>BaseCommon</artifactId>
<version>${jersey-version}</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<projectNameTemplate>[artifactId]-[version]</projectNameTemplate>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>tomcat-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
<configuration>
<path>/</path>
<port>7080</port>
<warSourceDirectory>WebContent</warSourceDirectory>
<tomcatWebXml>WebContent/WEB-INF/web.xml</tomcatWebXml>
<warFile>${basedir}/target/DelegateSystemServer.war</warFile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webappDirectory>WebContent</webappDirectory>
<webXml>WebContent/WEB-INF/web.xml</webXml>
<packagingExcludes>WEB-INF/web.xml</packagingExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/WebContent/WEB-INF/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<finalName>TestSample</finalName>
</build>
</project>
2.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>testsample</display-name>
<context-param>
<!-- spring和hibernate的配置 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-hibernate.xml</param-value>
</context-param>
<listener>
<!-- 避免缓冲泄露 -->
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<!-- 自动装配ApplicationContext的配置信息 -->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- spring mvc 配置文件 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
<servlet-mapping>
<!-- Web应用程序上下文根的路径 -->
<servlet-name>springMvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<!-- Spring中的字符集过滤器 -->
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<!-- 设置为true则强制覆盖之前的编码格式 -->
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 登录过滤器 -->
<filter>
<filter-name>DelegatingFilterProxy</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>sessionFilter</param-value>
</init-param>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DelegatingFilterProxy</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
<session-config>
<!-- session过期时间 -->
<session-timeout>30</session-timeout>
</session-config>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/jsp/err404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/jsp/err500.jsp</location>
</error-page>
<!-- <security-constraint> <web-resource-collection > <web-resource-name
>SSL</web-resource-name> <url-pattern>/loginFrame</url-pattern> </web-resource-collection>
<user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint> </security-constraint> -->
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
</web-app>
3.配置spring mvc的文件 spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- 扫描类升级bean -->
<context:component-scan base-package="com.testsample.*.action" />
<!-- 快速应用默认配置方案 -->
<mvc:annotation-driven />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain; charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
<!-- 返回页面路径 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
<!-- 欢迎页配置 -->
<mvc:view-controller path="/" view-name="login" />
<!-- 静态资源所有引用/WEB-INF/**的资源都在/WEB-INF/下找 -->
<mvc:resources location="/WEB-INF/" mapping="/WEB-INF/**" />
<mvc:resources location="/resource/" mapping="/resource/**" />
<mvc:resources location="/easyui/" mapping="/easyui/**" />
<mvc:resources location="/ueditor/" mapping="/ueditor/**" />
<!-- 配置上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8" />
</beans>
4.配置spring和hibernate
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- 扫描类生成bean -->
<context:component-scan base-package="com.trustsaving.*.service" />
<context:component-scan base-package="com.trustsaving.*.dao" />
<context:component-scan base-package="com.trustsaving.common.base" />
<context:component-scan base-package="com.trustsaving.web.filter.action" />
<!-- 引用一个本地文件 -->
<!-- <util:properties id="propertiesReader" location="classpath:sdoPayParam.properties"
/> -->
<!-- Spring 依赖注入:自动注入properties文件中的配置 -->
<bean id="propertiesReader"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:a.properties</value>
<value>classpath:b.properties</value>
<value>classpath:c.properties</value>
</list>
</property>
</bean>
<!-- 引用一个 本地文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 配置c3p0 -->
<bean id="hibernateDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${db_driver}" />
<property name="jdbcUrl" value="${db_url}" />
<property name="user" value="${db_username}" />
<property name="password" value="${db_password}" />
<!-- 最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认为0 -->
<property name="maxIdleTime" value="60" />
<!-- 连接池中保留的最小连接数。 -->
<property name="minPoolSize" value="5" />
<!-- 连接池中保留的最大连接数。默认为15 -->
<property name="maxPoolSize" value="30" />
<!-- 隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查 -->
<property name="idleConnectionTestPeriod" value="60" />
<!-- 初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值。默认为3 -->
<property name="initialPoolSize" value="10" />
<!-- 当连接池中的连接用完时,C3P0一次性创建新连接的数目 -->
<property name="acquireIncrement" value="5" />
<!-- 定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts" value="30" />
<property name="acquireRetryDelay" value="100" />
<!-- 获取连接失败将会引起所有等待获取连接的线程抛出异常。 但是数据源仍有效保留,并在下次调 用getConnection()的时候继续尝试获取连接。
如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认为 false -->
<property name="breakAfterAcquireFailure" value="true" />
</bean>
<bean id="hibernateSessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="hibernateDataSource" />
<property name="packagesToScan">
<list>
<value>com.trustsaving.*.po</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>
</bean>
<!-- 织入切面 -->
<aop:aspectj-autoproxy expose-proxy="true" />
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="hibernateTransactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="account*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="create*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="edit*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="save*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="updateRepay" propagation="REQUIRES_NEW"
rollback-for="Exception,RuntimeException" />
<tx:method name="update*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="modify*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="del*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="get*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="find*" propagation="SUPPORTS"
rollback-for="Exception,RuntimeException" />
<tx:method name="queryDebt" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="query*" propagation="SUPPORTS"
rollback-for="Exception,RuntimeException" />
<tx:method name="join*" propagation="SUPPORTS"
rollback-for="Exception,RuntimeException" />
<tx:method name="remove*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="buy*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="write*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="publish*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="run*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="repay*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="send*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="apply*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="reject*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="end*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="submit*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="login" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="lock*" propagation="NEVER"
rollback-for="Exception,RuntimeException" />
<tx:method name="unLock*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="checkOut*" propagation="REQUIRES_NEW"
rollback-for="Exception,RuntimeException" />
<tx:method name="complete*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="suspend*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="restore*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="reassign*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="reject*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="active*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="apply*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="cancel*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="check*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="merge*" propagation="REQUIRED"
rollback-for="Exception,RuntimeException" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<!--哪些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="fooServiceOperation"
expression="execution(* com.trustsaving..service..*ServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation" />
</aop:config>
<!-- <tx:annotation-driven transaction-manager="hibernateTransactionManager"
/> -->
<bean id="hibernateTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="hibernateSessionFactory" />
</bean>
</beans>