From 1f5c08df34fb6ed4e4c5bc633bfc766c5759987a Mon Sep 17 00:00:00 2001
From: qyx <565485304@qq.com>
Date: Mon, 29 Nov 2021 19:32:40 +0800
Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD](master):?=
=?UTF-8?q?=20JPA=E5=A4=9A=E6=95=B0=E6=8D=AE=E6=BA=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
dev-protocol-shardingtask 目前支持了JPA的多数据源方案1
待补充:JPA的多数据源2 及 ShardingJDBC的多数据源
---
README.md | 2 +
.../baiye/controller/NotebookController.java | 2 +-
.../com/baiye/{ => dao}/entity/Notebook.java | 2 +-
.../baiye/repository/NotebookRepository.java | 2 +-
dev-protocol-shardingtask/README.md | 10 ++
dev-protocol-shardingtask/db/init.sql | 20 ++++
dev-protocol-shardingtask/pom.xml | 65 +++++++++++++
.../DevProtocolsShardingTaskApplication.java | 39 ++++++++
.../configuration/DataSource1Config.java | 95 +++++++++++++++++++
.../configuration/DataSource2Config.java | 93 ++++++++++++++++++
.../com/baiye/controller/OrderController.java | 35 +++++++
.../main/java/com/baiye/dao/db1/Order.java | 42 ++++++++
.../com/baiye/dao/db1/OrderRepository.java | 14 +++
.../src/main/java/com/baiye/dao/db2/Sku.java | 42 ++++++++
.../java/com/baiye/dao/db2/SkuRepository.java | 14 +++
.../src/main/resources/application-dev.yml | 7 ++
.../src/main/resources/application.yml | 10 ++
.../config/application-dynamicDatasource.yml | 0
.../main/resources/config/application-jpa.yml | 28 ++++++
.../config/application-shardingSphere.yml | 0
pom.xml | 1 +
21 files changed, 520 insertions(+), 3 deletions(-)
rename dev-protocol-devops/src/main/java/com/baiye/{ => dao}/entity/Notebook.java (97%)
create mode 100644 dev-protocol-shardingtask/README.md
create mode 100644 dev-protocol-shardingtask/db/init.sql
create mode 100644 dev-protocol-shardingtask/pom.xml
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/DevProtocolsShardingTaskApplication.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource1Config.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource2Config.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/controller/OrderController.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/Order.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/OrderRepository.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/Sku.java
create mode 100644 dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/SkuRepository.java
create mode 100644 dev-protocol-shardingtask/src/main/resources/application-dev.yml
create mode 100644 dev-protocol-shardingtask/src/main/resources/application.yml
create mode 100644 dev-protocol-shardingtask/src/main/resources/config/application-dynamicDatasource.yml
create mode 100644 dev-protocol-shardingtask/src/main/resources/config/application-jpa.yml
create mode 100644 dev-protocol-shardingtask/src/main/resources/config/application-shardingSphere.yml
diff --git a/README.md b/README.md
index ea09757..eedc83f 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,8 @@
- 智能网关设计
dev-protocol-devops
- DevOps 相关的最佳实现
+ dev-protocol-shardingtask
+ - 配置多数据源和分表分库实现
### 1.1 基本命令(dev-protocol-log)
- Kafka
diff --git a/dev-protocol-devops/src/main/java/com/baiye/controller/NotebookController.java b/dev-protocol-devops/src/main/java/com/baiye/controller/NotebookController.java
index 45174bd..402409b 100644
--- a/dev-protocol-devops/src/main/java/com/baiye/controller/NotebookController.java
+++ b/dev-protocol-devops/src/main/java/com/baiye/controller/NotebookController.java
@@ -1,6 +1,6 @@
package com.baiye.controller;
-import com.baiye.entity.Notebook;
+import com.baiye.dao.entity.Notebook;
import com.baiye.repository.NotebookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/dev-protocol-devops/src/main/java/com/baiye/entity/Notebook.java b/dev-protocol-devops/src/main/java/com/baiye/dao/entity/Notebook.java
similarity index 97%
rename from dev-protocol-devops/src/main/java/com/baiye/entity/Notebook.java
rename to dev-protocol-devops/src/main/java/com/baiye/dao/entity/Notebook.java
index 2a94642..009fd7e 100644
--- a/dev-protocol-devops/src/main/java/com/baiye/entity/Notebook.java
+++ b/dev-protocol-devops/src/main/java/com/baiye/dao/entity/Notebook.java
@@ -1,4 +1,4 @@
-package com.baiye.entity;
+package com.baiye.dao.entity;
import javax.persistence.Column;
diff --git a/dev-protocol-devops/src/main/java/com/baiye/repository/NotebookRepository.java b/dev-protocol-devops/src/main/java/com/baiye/repository/NotebookRepository.java
index 1b52485..c6a9e35 100644
--- a/dev-protocol-devops/src/main/java/com/baiye/repository/NotebookRepository.java
+++ b/dev-protocol-devops/src/main/java/com/baiye/repository/NotebookRepository.java
@@ -1,7 +1,7 @@
package com.baiye.repository;
-import com.baiye.entity.Notebook;
+import com.baiye.dao.entity.Notebook;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
diff --git a/dev-protocol-shardingtask/README.md b/dev-protocol-shardingtask/README.md
new file mode 100644
index 0000000..1244834
--- /dev/null
+++ b/dev-protocol-shardingtask/README.md
@@ -0,0 +1,10 @@
+## 场景描述
+ 场景:
+ 假设订单库使用了分表分库
+ 订单相关的SKU使用的是别的库
+
+ 技术框架:
+ SpringBoot + ShardingSphere + JPA / dynamic-datasource
+## 实现功能
+ 多数据源动态切换整合分表分库实现
+
\ No newline at end of file
diff --git a/dev-protocol-shardingtask/db/init.sql b/dev-protocol-shardingtask/db/init.sql
new file mode 100644
index 0000000..36c984f
--- /dev/null
+++ b/dev-protocol-shardingtask/db/init.sql
@@ -0,0 +1,20 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for order
+-- ----------------------------
+DROP TABLE IF EXISTS `order`;
+CREATE TABLE `order`
+(
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `order_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `order_price` decimal(10, 2) NOT NULL,
+ `order_time` datetime(0) NOT NULL,
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB
+ CHARACTER SET = utf8mb4
+ COLLATE = utf8mb4_general_ci
+ ROW_FORMAT = Dynamic;
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/dev-protocol-shardingtask/pom.xml b/dev-protocol-shardingtask/pom.xml
new file mode 100644
index 0000000..d200086
--- /dev/null
+++ b/dev-protocol-shardingtask/pom.xml
@@ -0,0 +1,65 @@
+
+
+
+ dev-protocol
+ org.example
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ dev-protocol-shardingtask
+
+
+ 8
+ 8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+
+
+
+
+
+
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+
+ com.h2database
+ h2
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
\ No newline at end of file
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/DevProtocolsShardingTaskApplication.java b/dev-protocol-shardingtask/src/main/java/com/baiye/DevProtocolsShardingTaskApplication.java
new file mode 100644
index 0000000..1cc1d63
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/DevProtocolsShardingTaskApplication.java
@@ -0,0 +1,39 @@
+package com.baiye;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ConfigurableApplicationContext;
+
+import java.util.Iterator;
+
+/**
+ * 开发协议appication分片任务
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@SpringBootApplication
+public class DevProtocolsShardingTaskApplication {
+
+ public static void main(String[] args) {
+
+ // todo 这里先拿到上下文一会检查下配置
+ ConfigurableApplicationContext context = new SpringApplicationBuilder(DevProtocolsShardingTaskApplication.class)
+ .run(args);
+
+ // 检查Beans加载
+ checkAllBeansWithName(context);
+
+ }
+
+ private static void checkAllBeansWithName(ConfigurableApplicationContext context) {
+
+ Iterator beanNamesIterator = context.getBeanFactory().getBeanNamesIterator();
+
+ int i = 0;
+ while (beanNamesIterator.hasNext()) {
+ System.out.println("bean number is : " + (i++) + "name is : " + beanNamesIterator.next());
+ }
+ }
+}
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource1Config.java b/dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource1Config.java
new file mode 100644
index 0000000..08bd9b8
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource1Config.java
@@ -0,0 +1,95 @@
+package com.baiye.configuration;
+
+import com.zaxxer.hikari.HikariDataSource;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+
+/**
+ * 数据source1配置
+ *
+ * 开启事物
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@Configuration
+@EnableTransactionManagement
+@EnableJpaRepositories(
+ basePackages = {"com.baiye.dao.db1"},//数据源1的repository的包路径
+ entityManagerFactoryRef = "db1EntityManagerFactory",//改变数据源1的EntityManagerFactory的默认值,改为db1EntityManagerFactory
+ transactionManagerRef = "db1TransactionManager"//改变数据源1的transactionManager的默认值,改为db1TransactionManager
+)
+public class DataSource1Config {
+
+ /**
+ * 指定数据源1的dataSource配置
+ *
+ * @see ConfigurationProperties 数据源1的db配置前缀采用spring.datasource1
+ */
+ @Primary
+ @Bean(name = "db1DataSourceProperties")
+ @ConfigurationProperties("spring.datasource1")
+ public DataSourceProperties dataSourceProperties() {
+ return new DataSourceProperties();
+ }
+
+ /**
+ * 可以选择不同的数据源,这里我用HikariDataSource举例,创建数据源1
+ *
+ * @see ConfigurationProperties 配置数据源1所用的hikari配置key的前缀
+ * @param db1DataSourceProperties
+ * @return
+ */
+ @Primary
+ @Bean(name = "db1DataSource")
+ @ConfigurationProperties(prefix = "spring.datasource.hikari.db1")
+ public HikariDataSource dataSource(@Qualifier("db1DataSourceProperties") DataSourceProperties db1DataSourceProperties) {
+ HikariDataSource dataSource = db1DataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
+ if (StringUtils.hasText(db1DataSourceProperties.getName())) {
+ dataSource.setPoolName(db1DataSourceProperties.getName());
+ }
+ return dataSource;
+ }
+
+
+ /**
+ * 配置数据源1的entityManagerFactory命名为db1EntityManagerFactory,用来对实体进行一些操作
+ * @param builder
+ * @param db1DataSource entityManager依赖db1DataSource
+ * @return
+ */
+ @Primary
+ @Bean(name = "db1EntityManagerFactory")
+ public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("db1DataSource") DataSource db1DataSource) {
+ return builder.dataSource(db1DataSource)
+ //数据1的实体所在的路径
+ .packages("com.baiye.dao.db1")
+ // persistenceUnit的名字采用db1
+ .persistenceUnit("db1")
+ .build();
+ }
+ /**
+ * 配置数据源1的事务管理者,命名为db1TransactionManager依赖db1EntityManagerFactory
+ * @param db1EntityManagerFactory
+ * @return
+ */
+ @Primary
+ @Bean(name = "db1TransactionManager")
+ public PlatformTransactionManager transactionManager(@Qualifier("db1EntityManagerFactory") EntityManagerFactory db1EntityManagerFactory) {
+ return new JpaTransactionManager(db1EntityManagerFactory);
+ }
+}
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource2Config.java b/dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource2Config.java
new file mode 100644
index 0000000..42a3bc9
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/configuration/DataSource2Config.java
@@ -0,0 +1,93 @@
+package com.baiye.configuration;
+
+import com.zaxxer.hikari.HikariDataSource;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+
+/**
+ * 数据source2配置
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@Configuration
+@EnableTransactionManagement//开启事务
+//利用EnableJpaRepositories,配置哪些包下面的Repositories,采用哪个 EntityManagerFactory 和哪个 transactionManager
+@EnableJpaRepositories(
+ basePackages = {"com.baiye.dao.db2"},//数据源2的repository的包路径
+ entityManagerFactoryRef = "db2EntityManagerFactory",//改变数据源2的EntityManagerFactory的默认值,改为db2EntityManagerFactory
+ transactionManagerRef = "db2TransactionManager"//改变数据源2的transactionManager的默认值,改为db2TransactionManager
+)
+public class DataSource2Config {
+
+ /**
+ * 指定数据源2的dataSource配置
+ *
+ * 数据源2的db配置前缀采用spring.datasource2
+ * @return
+ */
+ @Bean(name = "db2DataSourceProperties")
+ @ConfigurationProperties("spring.datasource2")
+ public DataSourceProperties dataSourceProperties() {
+ return new DataSourceProperties();
+ }
+
+ /**
+ * 可以选择不同的数据源,这里我用HikariDataSource举例,创建数据源2
+ *
+ * 配置数据源2的hikari配置key的前缀
+ *
+ * @param db2DataSourceProperties
+ * @return
+ */
+ @Bean(name = "db2DataSource")
+ @ConfigurationProperties(prefix = "spring.datasource.hikari.db2")
+ public HikariDataSource dataSource(@Qualifier("db2DataSourceProperties") DataSourceProperties db2DataSourceProperties) {
+ HikariDataSource dataSource = db2DataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
+ if (StringUtils.hasText(db2DataSourceProperties.getName())) {
+ dataSource.setPoolName(db2DataSourceProperties.getName());
+ }
+ return dataSource;
+ }
+
+ /**
+ * 配置数据源2的entityManagerFactory命名为db2EntityManagerFactory,用来对实体进行一些操作
+ *
+ * @param builder
+ * @param db2DataSource entityManager依赖db2DataSource
+ * @return
+ */
+ @Bean(name = "db2EntityManagerFactory")
+ public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("db2DataSource") DataSource db2DataSource) {
+ return builder.dataSource(db2DataSource)
+ //数据2的实体所在的路径
+ .packages("com.baiye.dao.db2")
+ // persistenceUnit的名字采用db2
+ .persistenceUnit("db2")
+ .build();
+ }
+
+ /**
+ * 配置数据源2的事务管理者,命名为db2TransactionManager依赖db2EntityManagerFactory
+ *
+ * @param db2EntityManagerFactory
+ * @return
+ */
+ @Bean(name = "db2TransactionManager")
+ public PlatformTransactionManager transactionManager(@Qualifier("db2EntityManagerFactory") EntityManagerFactory db2EntityManagerFactory) {
+ return new JpaTransactionManager(db2EntityManagerFactory);
+ }
+}
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/controller/OrderController.java b/dev-protocol-shardingtask/src/main/java/com/baiye/controller/OrderController.java
new file mode 100644
index 0000000..b31ab62
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/controller/OrderController.java
@@ -0,0 +1,35 @@
+package com.baiye.controller;
+
+import com.baiye.dao.db1.Order;
+import com.baiye.dao.db1.OrderRepository;
+import com.baiye.dao.db2.Sku;
+import com.baiye.dao.db2.SkuRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class OrderController {
+ @Autowired
+ private OrderRepository orderRepository;
+ @Autowired
+ private SkuRepository skuRepository;
+
+ /**
+ * 保存订单
+ *
+ * @param order 订单
+ * @return {@link Order}
+ */
+ @PostMapping("/user")
+ public Order saveOrder(@RequestBody Order order) {
+ return orderRepository.save(order);
+ }
+
+
+ @PostMapping("/user/info")
+ public Sku saveUserInfo(@RequestBody Sku sku) {
+ return skuRepository.save(sku);
+ }
+}
\ No newline at end of file
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/Order.java b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/Order.java
new file mode 100644
index 0000000..8940310
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/Order.java
@@ -0,0 +1,42 @@
+package com.baiye.dao.db1;
+
+
+import javax.persistence.*;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 订单 -数据源1
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@Entity
+@Table(name = "order")
+public class Order {
+
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 订单名称
+ */
+ @Column(name = "order_name")
+ private String orderName;
+
+ /**
+ * 订单价格
+ */
+ @Column(name = "order_price")
+ private BigDecimal orderPrice;
+
+ /**
+ * 订单时间
+ */
+ @Column(name = "order_time")
+ private Date orderTime;
+}
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/OrderRepository.java b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/OrderRepository.java
new file mode 100644
index 0000000..53833be
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db1/OrderRepository.java
@@ -0,0 +1,14 @@
+package com.baiye.dao.db1;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 顺序存储库
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@Repository
+public interface OrderRepository extends JpaRepository {
+}
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/Sku.java b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/Sku.java
new file mode 100644
index 0000000..042e548
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/Sku.java
@@ -0,0 +1,42 @@
+package com.baiye.dao.db2;
+
+
+import javax.persistence.*;
+
+/**
+ * sku -数据源2
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@Entity
+@Table(name = "sku")
+public class Sku {
+
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 名字
+ */
+ private String name;
+
+ /**
+ * 等级
+ */
+ private String level;
+
+ /**
+ * 颜色
+ */
+ private String color;
+
+ /**
+ * 规格
+ */
+ private String size;
+}
diff --git a/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/SkuRepository.java b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/SkuRepository.java
new file mode 100644
index 0000000..20d5f12
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/java/com/baiye/dao/db2/SkuRepository.java
@@ -0,0 +1,14 @@
+package com.baiye.dao.db2;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * sku库
+ *
+ * @author q
+ * @date 2021/11/29
+ */
+@Repository
+public interface SkuRepository extends JpaRepository {
+}
diff --git a/dev-protocol-shardingtask/src/main/resources/application-dev.yml b/dev-protocol-shardingtask/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..d917e92
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/resources/application-dev.yml
@@ -0,0 +1,7 @@
+# 加载不同的配置文件,进行配置文件分离
+spring:
+ profiles:
+ include:
+ - jpa
+# - shardingSphere
+# - dynamicDatasource
diff --git a/dev-protocol-shardingtask/src/main/resources/application.yml b/dev-protocol-shardingtask/src/main/resources/application.yml
new file mode 100644
index 0000000..ebdd62f
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/resources/application.yml
@@ -0,0 +1,10 @@
+# 基本配置
+server:
+ port: 8088
+
+spring:
+ application:
+ name: dev-protocol-shardingtask
+# 加载不同环境
+ profiles:
+ active: dev
\ No newline at end of file
diff --git a/dev-protocol-shardingtask/src/main/resources/config/application-dynamicDatasource.yml b/dev-protocol-shardingtask/src/main/resources/config/application-dynamicDatasource.yml
new file mode 100644
index 0000000..e69de29
diff --git a/dev-protocol-shardingtask/src/main/resources/config/application-jpa.yml b/dev-protocol-shardingtask/src/main/resources/config/application-jpa.yml
new file mode 100644
index 0000000..d81a3a6
--- /dev/null
+++ b/dev-protocol-shardingtask/src/main/resources/config/application-jpa.yml
@@ -0,0 +1,28 @@
+spring:
+ ###########datasource1 采用Mysql数据库
+ datasource1:
+ url: jdbc:mysql://localhost:3306/test2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true
+ username: root
+ password: root
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ hikari:
+ ##数据源1的连接池的名字
+ db1:
+ pool-name: jpa-hikari-pool-db1
+ ## 最长生命周期15分钟
+ maxLifetime: 900000
+ maximumPoolSize: 8
+ ###########datasource2 采用h2内存数据库
+ datasource2:
+ url: jdbc:h2:~/test
+ username: sa
+ password: sa
+ datasource:
+ driver-class-name: org.h2.Driver
+ hikari:
+ ##数据源2的连接池的名字
+ db2:
+ pool-name: jpa-hikari-pool-db2
+ maxLifetime: 500000
+ maximumPoolSize: 6
\ No newline at end of file
diff --git a/dev-protocol-shardingtask/src/main/resources/config/application-shardingSphere.yml b/dev-protocol-shardingtask/src/main/resources/config/application-shardingSphere.yml
new file mode 100644
index 0000000..e69de29
diff --git a/pom.xml b/pom.xml
index 66e2e0c..1af7c8e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,6 +14,7 @@
dev-protocol-common
dev-protocol-gateway
dev-protocol-devops
+ dev-protocol-shardingtask