著作权归https://www.pdai.tech所有。
链接:https://www.pdai.tech/md/spring/springboot-data-multi.html
mysql, es, mongodb 三个数据源用配置文件方式连接,JPA只是正对dao做了封装,本文主要介绍如何对service层进行封装。 @pdai
- Spring Boot - 多个数据源Service层封装
- 类关系图
- 封装的一些配置
- application.yml
- pom.xml
- 封装后使用
- MySQL 动态数据访问
- Mongo 动态数据访问
- ElasticSearch 动态数据访问(单个index+type)
- ElasticSearch 动态数据访问(多个index+type)
类关系图
- 对多个数据源连接获取数据进行统一封装
- ES spring-data方式不支持多个Index和Type的查找功能,添加了DynamicESDao支持
- 大大简化封装之后的调用, 调用方式如下
封装的一些配置
application.yml
banner:
pom.xml
<
封装后使用
封装之后使用将非常简单,公共的Service行为将被封装处理
MySQL 动态数据访问
通过几行代码即可实现对MySQL的访问,同时支持动态的条件查询;
- User
@Entity
- Dao
@Repository
- Service
public
- Controller
@RestController
Mongo 动态数据访问
通过几行代码即可实现对Mongo的访问,同时支持动态的条件查询;
- Entity
@Document
- Dao
@Repository
- Service
public
- Controller
@RestController
ElasticSearch 动态数据访问(单个index+type)
通过几行代码即可实现对ElasticSearch的访问,同时支持动态的条件查询; 适合数据类型比较固定,且index和type独立的,比如强类型映射的实体类;
- Entity
@Document
- Dao
@Repository
- Service
public
- Controller
@RestController
ElasticSearch 动态数据访问(多个index+type)
通过几行代码即可实现对ElasticSearch的访问,同时支持动态的条件查询; 适合数据类型不固定,且index和type有多个,这些index具备相同结构类型,比如syslog-EVERY-DATE(由于日志量大,将每天的日志单独存放在一个Index中);
- Entity
@Document
- Dao
public
- Service
public
- Controller
@RestController