<!– micro分布式数据源 --> <bean id="local_xa_dataSource" class="com.nh.micro.datasource.MicroXaDataSourceFactory" factory-method="createDataSource" init-method=“init”> <!– 多个micro分布式数据源实例时可设置不同的dataSourceId 默认为default --> <constructor-arg value=“default”/> <property name="url" value="${database.url}" /> <property name="username" value="${database.user}" /> <property name="password" value="${database.password}" /> <property name="minSize" value=“5" /> <property name="maxSize" value=“20" /> <property name=“dirverClassName” value=“com.mysql.jdbc.Driver” /> <property name=“validationQuery” value=“select 'x' from dual” /> </bean> <!-- micro动态切换数据源配置 --> <bean id="dynamic_xa_dataSource" class="com.nh.micro.datasource.MicroDynamicDataSource" > <property name="targetDataSources"> <map key-type="java.lang.String"> <!– 设置目标数据源为分布式事务数据源 --> <entry key="local_xa_dataSource" value-ref="local_xa_dataSource"></entry> </map> </property> <!-- 默认目标数据源为主库普通数据源 --> <property name="defaultTargetDataSource" ref="dataSource"/> </bean> <!-- define the Mybatis SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!– Mybatis引入micro动态切换数据源实例 --> <property name="dataSource" ref="dynamic_xa_dataSource"/> <property name="typeAliasesPackage" value="foo.model"/> </bean> <aop:config> <aop:pointcut id="testPointcut" expression="execution( * foo.repository.TestRep.*(..))"/> <aop:advisor pointcut-ref="testPointcut" advice-ref="dataSourceAdvice"/> </aop:config> |