码迷,mamicode.com
首页 > 其他好文 > 详细

koala 多数据源动态切换

时间:2015-05-07 16:48:19      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:多数据源切换   数据源分组   数据源   sprint   aop   

koala

特点:多数据源动态切换,数据源分组和负载均衡(轮询)

项目源码以及demo:https://github.com/zeq9069/koala

请大家关注一下哦!!哈哈!

  最近,在开发项目的时候后,要用到多个数据源的动态切换,于是就开发了koala  
这个小小得框架,koala支持多数据源的切换,数据源的分组和负载均衡(轮询)!  
  只需要将jar引入到你自己的项目中之后,然后进行简单配置就可以使用了!!使用起来  
非常方便,该项目提供了三个核心的注解@ChangeTo,@DataSourceDistribute,  
@DataSourceGroup.   
 我们在下面详细的讲解一下怎么使用。

1. @ChangeTo

   该注解是用在你的service层的实现类的方法上的,意思就是改变数据源为指定的数据源,  
 例如:@ChangeTo(value="slave"),将数据源切换到数据源slave。如果不设置value的话,  
 意思就是使用默认的数据源。

2.@DataSourceDistribute

    该注解使用在service层的实现类的类上,我叫它"数据源派遣",哈哈!什么意思呢?  
  就是将指定的数据源分配到对应的方法上。  
  例如:  
 @DataSourceDistribute(value={  
   @DataSourceEntity(dataSource="slave",methodPattern="get*|delete*")  })  
  这个注解有点长,我们来分析一下。
    首先,@DataSourceDistribute这个注解是主体,它有一个数组形式的参数value,  
这个数组里放的是好多个子注解@DataSourceEntity,每一个子注解中都有两个参数  
dataSource和methodPattern,dataSource对应数据源,methodPattern对应一些方法名  
的正则表达式。
    这样你就明白了吧?这个例子的意思就是将数据源slave分配到跟以get或者delete开头  
的方法上!!!当然你可以设置多个@DataSourceEntity,这里只设置了一个!!这样就不用  
再每一个方法上手动设置数据源了,省了不少事!!

3.@DataSourceGroup

    这个注解也是用在service层的实现类上,它更上一个注解不同,上一个注解只能将一个  
dataSource对应到多个方法上,而@DataSourceGroup的目的就是一个或多个方法对应到  
一个dataSource组,也就是多个dataSource!!!这一个数据源组中的数据源是轮询执行的,  
这样就起到了负载均衡的效果!!
例如:  
    @DataSourceGroup(groups={  
      @Group(groupName="master-group",methodPattern="get*|delete*")  
     })  
  呵呵!!是不是跟上一个注解很类似啊!!
  我们详细解释一下,首先@DataSourceGroup有个数组形式的参数groups,里卖弄存放的是一  
些子注解@Group,@Group中又有两个参数groupName和methodPattern,分别对应数据源组  
名和方法名的正则表达式。(怎么配置数据源和数据源组名呢??详细请看项目的使用文档  
https://github.com/zeq9069/koala)
  上面的例子意思就是将以get或delete开头的方法对应到数据源组master-group上,这样当  
方法执行时,就可以去轮询master-group组中的数据源了,而且数据源被访问到机会是均等的。  
这样既起到了负载均衡的效果又简化了配置。

以上的核心内容就完了!

去看看项目源码吧,有详细的配置和注意事项说明。

有什么不懂得发邮件到 kyrincloud@qq.com

koala 多数据源动态切换

标签:多数据源切换   数据源分组   数据源   sprint   aop   

原文地址:http://blog.csdn.net/zeqblog/article/details/45561753

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!