前言
相对于 spring 对 mybatis 以及 redis 等的整合所需要的各种配置文件,在 springboot 下,已经大大的简化了,你可能只是需要增加个依赖,加个注解,然后在配置文件中添加一些属性,就已经集成完成了。真正的体现了springboot的“约定大于配置”。
问题
但是,在实际的开发中,还是遇到了一些问题,比如我有一个微服务rms-service,整合了 mybatis 以及 redis 。此外,我还有一个专门用来进行定时任务的另一个微服务,假设为schedule-service。而在schedule-service这个微服务下,同样需要进行数据操作,我不可能还要在schedule-service下再一次进行集成,这样大大的增加了代码量。
思路
基于以上的问题,我的解决方案是基于springcloud的分布式配置,实现配置统一。其次,是将有关数据操作的都单独部署成一个模块,比如我集成 mybatis的模块db-mysql,集成redis的模块db-redis,使用redis作为内存缓存模块db-cache。因为项目是使用springcloud微服务架构,所以所有微服务都注册到同一个eureka服务注册中心,每个需要进行数据操作的微服务只需依赖数据操作的模块,如db-mysql,db-cache,并且在bootstrap.yml 配置文件中,指定配置中心服务的地址以及配置文件的name和profile:
spring:
# 配置中心服务的地址
cloud:
config:
name: data
profile: ${spring.profiles.active} # 要读取的配置文件profile属性
# uri: http://127.0.0.1:7001
#label: ${spring.profiles.active}
discovery:
enabled: true # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
serviceId: config-server
profiles:
active: dev
结语
以上仅为本人对数据操作独立模块化的一些认识,在此算是抛砖引玉。关于整合也写了相关博文:
db-mysql模块中对mybatis-plus的整合:
【springboot系列】springboot整合独立模块Druid + mybatis-plus
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。