ZhiYeJianKang/职业健康平台后端/target/classes/mybatis.xml
2025-02-20 15:25:59 +08:00

150 lines
7.6 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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"/>
&lt;!&ndash;hibernate4必须配置为开启事务 否则 getCurrentSession()获取不到&ndash;&gt;
<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">
&lt;!&ndash; 基本属性 url、user、password &ndash;&gt;
<property name="url" value="${connection.url2}"/>
<property name="username" value="${connection.username2}"/>
<property name="password" value="${connection.password2}"/>
&lt;!&ndash; 配置初始化大小、最小、最大 &ndash;&gt;
<property name="initialSize" value="${jdbc.pool.init}" />
<property name="minIdle" value="${jdbc.pool.minIdle}" />
<property name="maxActive" value="${jdbc.pool.maxActive}" />
&lt;!&ndash; 配置获取连接等待超时的时间 &ndash;&gt;
<property name="maxWait" value="60000" />
&lt;!&ndash; 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 &ndash;&gt;
<property name="timeBetweenEvictionRunsMillis" value="60000" />
&lt;!&ndash; 配置一个连接在池中最小生存的时间,单位是毫秒 &ndash;&gt;
<property name="minEvictableIdleTimeMillis" value="300000" />
&lt;!&ndash; <property name="validationQuery" value="${jdbc.testSql}" />&ndash;&gt;
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
&lt;!&ndash; 配置监控统计拦截的filters &ndash;&gt;
<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>