代码 git :https://github.com/cyliang1113/java-demo.git中,rwseparation-demo;
简单介绍:
service方法中如果只有读数据库操作,使用只读数据库;
service方法中如果有读和写数据库操作,使用写数据库;
一般来说会有一个写数据库多个只读数据库,当只有读操作的时候访问只读数据库;
需要自己动手实现的:
1,数据源,需要继承AbstractRoutingDataSource数据源,实现determineCurrentLookupKey方法;
2,编写一个spring aop环绕通知,spring配置切面时,自定义的通知优先级要高于spring事务通知;
3,通过ThreadLocal实现一个线程内部的数据共享;
4,定义一个注解用在只有读数据库操作的service方法上;
具体怎么配置见代码中spring的配置文件;