springmvc4.2.1+mybatis3.3.0+maven3.3+mysql读写分离


实现数据库读写分离步骤

    1  mysql数据库 设置 主从  日志同步

    2  spring配置文件配置 2个数据源  然后放到一个datasource, 其他的txmanager和sessionfactory直接使用datasource

   3  新建一个类 继承 AbstractRoutingDataSource 重写determineCurrentLookupKey方法

   4  写一个 dbhelper类, 用来 设置 和获取 数据源

   5 在controller层 需要使用数据库的地方 手工设置 数据源 DBContextHolder.setDbType(DBContextHolder.DB_RW 或者 DB_R);

      读写分离最好不要用注解的方案, 应该在CONTROLLER层 手动  切换
       
       因为 比如更新信息, 更新到主库,更新完后 为了防止数据延迟,读到旧数据,所以应该接着读主库, 而不是去读从库。



     1  MAVEN 配置文件

     <properties>


<!-- spring版本号 -->
<spring.version>4.2.1.RELEASE</spring.version>

<!-- mybatis版本号  -->
<mybatis.version>3.3.0</mybatis.version>

<!-- spring mybatis融合包 版本号  -->
<mybatis_spring.version>1.2.3 </mybatis_spring.version>

<!-- log4j日志文件管理包版本 -->
<slf.version>1.7.10</slf.version>


</properties>


<dependencies>

      <!-- mybatis逆向工程 需要使用的包 -->
       <dependency>
 <groupId>org.mybatis.generator</groupId>
 <artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version> </dependency>
 
 


<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!--test 表示开发的时候引入,发布的时候不会加载此包 -->
<scope>compile</scope>
</dependency>




<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>


<!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> 
<version>${spring.version}</version> </dependency> -->




<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>


<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>


<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值