<!-- 数据源(主库) -->
<bean id="dataSource_main" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverclass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxPoolSize" value="${c3p0.pool.size.max}" />
<property name="minPoolSize" value="${c3p0.pool.size.min}" />
<property name="initialPoolSize" value="${c3p0.pool.size.ini}" />
<property name="acquireIncrement" value="${c3p0.pool.size.increment}" />
</bean>
<!-- 数据源(从库) -->
<bean id="dataSource_1" parent="dataSource_main">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/lsn_surveypark0909_1" />
</bean>
<!-- 数据源路由器 -->
<bean id="dataSource_router" class="cn.itcast.surveypark.datasource.SurveyparkDataSourceRouter">
<property name="targetDataSources">
<map>
<entry key="odd" value-ref="dataSource_main" />
<entry key="even" value-ref="dataSource_1" />
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSource_main" />
</bean>
![]()
<!-- aop事务配置 -->
<aop:config>
<!-- 事务切入点 -->
<aop:pointcut expression="execution(* *..*Service.*(..))" id="txPointcut"/>
<!-- 日志切入点 -->
<aop:pointcut expression="(execution(* *..*Service.save*(..))
or execution(* *..*Service.update*(..))
or execution(* *..*Service.delete*(..))
or execution(* *..*Service.batch*(..))
or execution(* *..*Service.new*(..))) and !bean(logService)"
id="loggerPointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" order="1"/>
<!-- 配置日志切面 -->
<aop:aspect id="loggerAspect" ref="logger" order="0">
<aop:around method="record" pointcut-ref="loggerPointcut"/>
</aop:aspect>
</aop:config>
aop