activiti的事务在jpa的情况下和spring不统一

配置文件如下即可:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="
	   http://www.springframework.org/schema/beans
	   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
	   http://www.springframework.org/schema/context
	   http://www.springframework.org/schema/context/spring-context-4.3.xsd
	   http://www.springframework.org/schema/tx
	   http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
	   http://www.springframework.org/schema/mvc
	   http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
	   http://www.springframework.org/schema/aop
	   http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">

    <!-- 加载架构配置 -->
    <context:property-placeholder location="classpath:frame.properties"/>

    <!-- 用于处理静态资源访问 -->
    <mvc:default-servlet-handler/>

    <!-- 注解扫描配置 -->
    <context:annotation-config/>
    <context:component-scan base-package="com.sdt"/>
    <import resource="classpath:spring-swagger.xml"/>

    <!-- 用于处理静态资源访问  swagger-ui-->
    <mvc:default-servlet-handler/>
    <!-- swagger配置,生产环境置空SpringMVC Swagger Configuration -->
    <bean class="com.sdt.eims.common.swagger.SwaggerConfig" />

    <!-- SpringMVC注解支持 -->
    <mvc:annotation-driven/>

    <!-- 数据库连接配置(hikari) -->
    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
          destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="minimumIdle" value="${hikari.minimumIdle}"/>
        <property name="maximumPoolSize" value="${hikari.maximumPoolSize}"/>
        <property name="idleTimeout" value="${hikari.idleTimeout}"/>
        <property name="connectionTimeout" value="${hikari.connectionTimeout}"/>
        <property name="maxLifetime" value="${hikari.maxLifetime}"/>
        <property name="connectionTestQuery" value="${hikari.connectionTestQuery}"/>
        <property name="autoCommit" value="${hikari.autoCommit}"/>
    </bean>

    <!-- 配置实体管理器工厂 -->
    <bean id="entityManagerFactory"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="persistenceProvider">
            <bean id="persistenceProvider" class="org.hibernate.ejb.HibernatePersistence" />
        </property>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="generateDdl" value="true" />
                <property name="database" value="MYSQL" />
            </bean>
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
                <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
                <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
                <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
                <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}
                </prop>
            </props>
        </property>
    </bean>

    <!-- JPA事务配置 -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
        <property name="jpaDialect">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
        </property>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

    <!-- AOP配置 -->
    <aop:aspectj-autoproxy proxy-target-class="true" />

    <!-- 流程引擎配置 -->
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource"/>
        <property name="databaseType" value="mysql"/>
        <property name="transactionManager" ref="transactionManager"/>
        <property name="databaseSchemaUpdate" value="true"/>
        <property name="jpaEntityManagerFactory" ref="entityManagerFactory"/>
        <property name="jpaHandleTransaction" value="true"/>
        <property name="jpaCloseEntityManager" value="true"/>
        <property name="deploymentMode" value="single-resource"/>
        <property name="activityFontName" value="宋体"/>
        <property name="labelFontName" value="宋体"/>
        <!--<property name="deploymentResources" value="classpath:flow/*.zip"></property>-->
    </bean>

    <!-- 流程引擎工厂类 -->
    <bean id="processEngineFactory" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration"/>
    </bean>

    <!-- 流程引擎服务 -->
    <bean id="repositoryService" factory-bean="processEngineFactory" factory-method="getRepositoryService"/>
    <bean id="runtimeService" factory-bean="processEngineFactory" factory-method="getRuntimeService"/>
    <bean id="formService" factory-bean="processEngineFactory" factory-method="getFormService"/>
    <bean id="identityService" factory-bean="processEngineFactory" factory-method="getIdentityService"/>
    <bean id="taskService" factory-bean="processEngineFactory" factory-method="getTaskService"/>
    <bean id="historyService" factory-bean="processEngineFactory" factory-method="getHistoryService"/>
    <bean id="managementService" factory-bean="processEngineFactory" factory-method="getManagementService"/>

    <!-- 配置我的上下文获取类 -->
    <bean id="springContextHolder" class="com.sdt.eims.business.workflow.utils.SpringContextHolder" lazy-init="false"/>
</beans>

猜你喜欢

转载自blog.csdn.net/qq_42046342/article/details/103013157