代码拉取完成,页面将自动刷新
同步操作将从 throwable/spring-dbutil 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#dbutil
基于Spring的 AbstractRoutingDataSource 进行简单的封装,方便进行数据源的切换,目前主要用于主从数据库的读写切换上。
<dependency>
<groupId>com.tanghd.spring</groupId>
<artifactId>dbutil</artifactId>
<version>0.2</version>
</dependency>
<bean id="dataSource" ...></bean>
<bean id="slaveDataSource1" ...></bean>
<bean id="slaveDataSource2" ...></bean>
<bean id="dynamicDataSource" class="com.tanghd.spring.dbutil.datasource.DynamicDataSource">
<property name="master" ref="dataSource"/>
<property name="slaves">
<list>
<value ref="slaveDataSource1"/>
<value ref="slaveDataSource2"/>
</list>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dynamicDataSource" />
...
</bean>
public void queryXXX(){
DynamicDataSource.useSlave();
try{
...
}finally{
DynamicDataSource.reset();
}
}
可以使用Spring-AOP进行扩展,减少对代码的入侵。目前支持Aspect和Spring-AOP方式。
需要依赖spring-aspects、aspectjrt、aspectjweaver
spring的xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="DsChangeAspect" class="com.tanghd.spring.dbutil.aop.DataSourceAspect"/>
<!--proxy-target-class = true 使用cglib代理,否则使用Java动态代理-->
<aop:aspectj-autoproxy proxy-target-class="true" />
</beans>
代码示例:
@DataSourceChange(slave=true)
public void queryXXX(){
...
}
不使用aspect,这种方式提供了支持@See DataSourceAdvisor.java,目前还没用到,示例略,只是配置上和Aspect不同,使用方式同样是通过注解来进行改变当前使用的数据源 以下是参考例子:
<bean id="advisor" class="com.tanghd.spring.dbutil.aop.DataSourceAdvisor" />
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="advisor"
pointcut="@annotation(com.tanghd.spring.dbutil.aop.DataSourceChange)" />
</aop:config>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。