开源框架springboot-mybatis-wr-separation实现springboot+mybatis读写分离

Posted 浮生(FS)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源框架springboot-mybatis-wr-separation实现springboot+mybatis读写分离相关的知识,希望对你有一定的参考价值。

最近做springboot+mybatis的项目想要用到读写分离,查了一圈发现大家都是自己写的,没用通用现成的读写分离架构,因此就写了一个比较简单好用的小插件,来帮助大家简单的实现读写分离的功能,项目已开源并已经上传到maven中央仓库,欢迎提出宝贵意见,共同改进。

springboot-mybatis-wr-separation

介绍
springboot-mybatis-wr-separation 是一个基于maven的项目,依赖springboot和mybatis,提供读写分离的功能的开源项目插件

软件架构
1. 使用jdk1.7
2. 依赖spring-boot-starter-parent(1.5.4.RELEASE)/spring-boot-starter-aop/mybatis-spring-boot-starter(1.3.1)

部署说明

1. 直接进行jar包依赖即可

        <dependency>
            <groupId>com.gitee.sunchenbin</groupId>
            <artifactId>springboot-mybatis-wr-separation</artifactId>
            <version>0.0.4.RELEASE</version>
        </dependency>

2. application.properties中需要做如下配置

        (1) mybatis的配置

    mybatis.mapperLocations=classpath:sql-mapper/**/*.xml
    mybatis.typeAliasesPackage=com.xxx.api.xxx.model,com.xxx.api.xxx.command

        (2) 读库和写库的配置   

    spring.datasource.write.url=jdbc:postgresql://127.0.0.1/db-master
    spring.datasource.write.username=root
    spring.datasource.write.password=123456
    spring.datasource.write.driver-class-name=org.postgresql.Driver

    spring.datasource.read.url=jdbc:postgresql://127.0.0.1/db-slave
    spring.datasource.read.username=root
    spring.datasource.read.password=123456
    spring.datasource.read.driver-class-name=org.postgresql.Driver

        (3) 读写分离切点的expression表达式(建议切manager或者service)   

    wr.separation.pointcut.expression=execution(public * com.xxx..*.*(..))


3. 应用插件的springboot项目需要配置扫码插件的包,即@ComponentScan需要配置对"com.gitee.sunshine.*"包路径的扫描

使用说明

1. 本插件提供一个注解,@ReadDB(走读库),如果不打注解默认走写库

2. 注解适用范围,必须是spring管理的bean的方法,注解不支持打在接口方法上,通常来说建议在manager层service层的方法上使用

3. 注解生命周期,为了避免读库写库来回切换,产生的事务问题,这里规定,当前线程只会使用一个库去执行操作,比如a.test1()被调用时,首先a是被spring管理的类,并且他在我们配置文件“读写分离切点表达式”的范围内,那么此时,如果test1()打了注解@ReadDB,那么从此开始直到这个线程结束了,都使用读库,如果没有打注解,那么从此开始知道整个线程结束了都使用写库。

4. 没有被切到的方法如果使用了数据库操作,默认走写库

springboot-mybatis-wr-separation插件开源地址

  1. 码云地址:https://gitee.com/sunchenbin/springboot-mybatis-wr-separation

  2. 代码下载地址:https://git.oschina.net/sunchenbin/springboot-mybatis-wr-separation.git

以上是关于开源框架springboot-mybatis-wr-separation实现springboot+mybatis读写分离的主要内容,如果未能解决你的问题,请参考以下文章

基于Node.JS, MongoDB的开源IM聊天框架Spika

开源推荐-C++开发的微服务框架Tars

最常用Python开源框架都有哪些

32个实用酷炫的Android开源UI框架

开源框架 RSA_Swift

android有没有能播放.swf的开源框架