150 lines
7.6 KiB
XML
150 lines
7.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
|
||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
|
||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
|
||
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
|
||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
|
||
"
|
||
default-lazy-init="true">
|
||
|
||
<!-- MyBatis begin -->
|
||
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||
<property name="dataSource" ref="dataSource"/>
|
||
<property name="typeAliasesPackage" value="com.hx.slj"/>
|
||
<property name="typeAliasesSuperType" value="com.hx.slj.common.persistence.BaseEntity"/>
|
||
<property name="mapperLocations" value="classpath:/mappings/modules/**/*.xml"/>
|
||
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
|
||
</bean>
|
||
|
||
<!-- 扫描basePackage下所有以@MyBatisDao注解的接口 -->
|
||
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
||
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
|
||
<property name="basePackage" value="com.hx.slj"/>
|
||
<property name="annotationClass" value="com.hx.slj.common.persistence.annotation.MyBatisDao"/>
|
||
</bean>
|
||
|
||
<!-- 定义事务 -->
|
||
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||
<property name="dataSource" ref="dataSource" />
|
||
</bean>
|
||
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
|
||
<!-- <tx:advice id="txAdvice" transaction-manager="transactionManager">
|
||
<tx:attributes>
|
||
<tx:method name="doReweight" propagation="REQUIRES_NEW"/>
|
||
<tx:method name="doClear*" propagation="REQUIRES_NEW"/>
|
||
<tx:method name="doSend*" propagation="REQUIRES_NEW"/>
|
||
<tx:method name="doBatchSave*" propagation="REQUIRES_NEW"/>
|
||
<tx:method name="time*" propagation="REQUIRES_NEW"/>
|
||
|
||
<!–hibernate4必须配置为开启事务 否则 getCurrentSession()获取不到–>
|
||
<tx:method name="get*" propagation="REQUIRED" read-only="true"/>
|
||
<tx:method name="count*" propagation="REQUIRED" read-only="true"/>
|
||
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
|
||
<tx:method name="search*" propagation="REQUIRED" read-only="true"/>
|
||
<tx:method name="select*" propagation="REQUIRED" read-only="true"/>
|
||
<tx:method name="package*" propagation="REQUIRED" read-only="true"/>
|
||
<tx:method name="*" propagation="REQUIRED"/>
|
||
</tx:attributes>
|
||
</tx:advice>-->
|
||
<!-- 配置 Annotation 驱动,扫描@Transactional注解的类定义事务 -->
|
||
<!--<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>-->
|
||
<!-- MyBatis end -->
|
||
|
||
<!-- 数据源配置, 使用 BoneCP 数据库连接池 -->
|
||
<bean id="dataSourcePrimary" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
|
||
<!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass -->
|
||
<property name="driverClassName" value="${jdbc.driver}" />
|
||
|
||
<!-- 基本属性 url、user、password -->
|
||
<property name="url" value="${jdbc.url}" />
|
||
<property name="username" value="${jdbc.username}" />
|
||
<property name="password" value="${jdbc.password}" />
|
||
|
||
<!-- 配置初始化大小、最小、最大 -->
|
||
<property name="initialSize" value="${jdbc.pool.init}" />
|
||
<property name="minIdle" value="${jdbc.pool.minIdle}" />
|
||
<property name="maxActive" value="${jdbc.pool.maxActive}" />
|
||
|
||
<!-- 配置获取连接等待超时的时间 -->
|
||
<property name="maxWait" value="60000" />
|
||
|
||
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
|
||
<property name="timeBetweenEvictionRunsMillis" value="60000" />
|
||
|
||
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
|
||
<property name="minEvictableIdleTimeMillis" value="300000" />
|
||
|
||
<!-- <property name="validationQuery" value="${jdbc.testSql}" />-->
|
||
<property name="testWhileIdle" value="true" />
|
||
<property name="testOnBorrow" value="false" />
|
||
<property name="testOnReturn" value="false" />
|
||
|
||
<!-- 打开PSCache,并且指定每个连接上PSCache的大小(Oracle使用)
|
||
<property name="poolPreparedStatements" value="true" />
|
||
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> -->
|
||
|
||
<!-- 配置监控统计拦截的filters -->
|
||
<property name="filters" value="stat" />
|
||
</bean>
|
||
<bean id="dataSourceSecend" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
|
||
<property name="driverClassName" value="${connection.driver2}"/>
|
||
<property name="url" value="${connection.url2}"/>
|
||
<property name="username" value="${connection.username2}"/>
|
||
<property name="password" value="${connection.password2}"/>
|
||
</bean>
|
||
<!-- <bean id="dataSourceSecend" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
|
||
<!– 基本属性 url、user、password –>
|
||
<property name="url" value="${connection.url2}"/>
|
||
<property name="username" value="${connection.username2}"/>
|
||
<property name="password" value="${connection.password2}"/>
|
||
|
||
<!– 配置初始化大小、最小、最大 –>
|
||
<property name="initialSize" value="${jdbc.pool.init}" />
|
||
<property name="minIdle" value="${jdbc.pool.minIdle}" />
|
||
<property name="maxActive" value="${jdbc.pool.maxActive}" />
|
||
|
||
<!– 配置获取连接等待超时的时间 –>
|
||
<property name="maxWait" value="60000" />
|
||
|
||
<!– 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 –>
|
||
<property name="timeBetweenEvictionRunsMillis" value="60000" />
|
||
|
||
<!– 配置一个连接在池中最小生存的时间,单位是毫秒 –>
|
||
<property name="minEvictableIdleTimeMillis" value="300000" />
|
||
|
||
<!– <property name="validationQuery" value="${jdbc.testSql}" />–>
|
||
<property name="testWhileIdle" value="true" />
|
||
<property name="testOnBorrow" value="false" />
|
||
<property name="testOnReturn" value="false" />
|
||
<!– 配置监控统计拦截的filters –>
|
||
<property name="filters" value="stat" />
|
||
</bean>-->
|
||
<bean id="dataSource" class="com.hx.slj.common.utils.database.DBContextHolder">
|
||
<property name="targetDataSources">
|
||
<map key-type="java.lang.String">
|
||
<!-- 主库-1 -->
|
||
<entry key="primary" value-ref="dataSourcePrimary"/>
|
||
<!-- 副库-2 -->
|
||
<entry key="secend" value-ref="dataSourceSecend"/>
|
||
</map>
|
||
</property>
|
||
<!--默认数据源-->
|
||
<property name="defaultTargetDataSource" ref="dataSourcePrimary"/>
|
||
</bean>
|
||
<bean id="dynamicDataSourceAspect" class="com.hx.slj.common.utils.database.DynamicDataSourceAspect">
|
||
</bean>
|
||
|
||
<!--设置切面 com.test.service.*.impl.*()-->
|
||
<aop:config proxy-target-class="true">
|
||
<aop:pointcut id="myPointcut" expression="execution(* com.hx.slj.modules.zyb.service.HealthPhysicalReportMsiService.*(..))"/>
|
||
<aop:advisor advice-ref="dynamicDataSourceAspect" pointcut-ref="myPointcut" order="1"/>
|
||
</aop:config>
|
||
|
||
</beans>
|