springboot2.x 3.3.配置分离

本文介绍了一种通过修改spring.profiles.active属性来切换不同环境配置文件的方法,包括开发(dev)和生产(prod)环境的配置示例。
创建多个配置文件

这里创建两个配置文件,分别是用作生产和开发使用的
创建内容为空的两个文件 application-dev.yml,application-prod.yml
在这里插入图片描述
当前有3个配置文件
application.yml 将共有的配置写在这里
application-dev.yml 将开发环境中的配置写在这里
application-prod.yml 将生产环境中的配置写在这里

这里使用自定义配置做演示,框架的配置也是可以这样用的
修改通用配置文件中的spring.profiles.active的值 就是使用指定的配置文件

application.yml
server:
  port: 10080

spring:
  profiles:
    active: dev #用于指定使用哪个配置文件中的配置
application-dev.yml
myconfig: "dev"
application-prod.yml
myconfig: "prod"
DemoService
package com.imsjw.demo.service;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class DemoService {

    @Value("${myconfig}")
    private String myconfig;

    public String testConfig() {
        return myconfig;
    }

}
### 3.1 添加 Maven 依赖 在 `pom.xml` 文件中添加 ShardingSphere-JDBC 和数据库连接池的依赖。推荐使用 Druid 或 HikariCP 作为连接池: ```xml <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>5.4.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.16</version> </dependency> ``` ShardingSphere 5.4.1 支持与 Spring Boot 3.x 的集成,但需要注意 Java 版本和依赖兼容性问题[^3]。 --- ### 3.2 配置数据源和规则(YAML) 创建 `config-sharding.yaml` 文件用于定义数据源、分片规则、读写分离配置。以下是一个典型的配置示例: ```yaml dataSources: ds0: dataSourceClassName: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/ds0 username: root password: root connectionTimeoutMilliseconds: 30000 maxPoolSize: 50 minPoolSize: 5 ds1: dataSourceClassName: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/ds1 username: root password: root connectionTimeoutMilliseconds: 30000 maxPoolSize: 50 minPoolSize: 5 rules: - !SHARDING tables: t_order: actualDataNodes: ds${0..1}.t_order_${0..1} tableStrategy: standard: shardingColumn: order_id shardingAlgorithmName: t_order_hash_mod shardingAlgorithms: t_order_hash_mod: type: HASH_MOD props: sharding-count: 2 ``` 该配置文件定义了两个数据源 `ds0` 和 `ds1`,并为 `t_order` 表设置了按 `order_id` 哈希取模的分片策略,将数据分布到两个库的两张表中[^1]。 --- ### 3.3 在 Spring Boot 中配置 ShardingSphere 数据源 通过 Java 配置类加载 YAML 文件来初始化 ShardingSphere 数据源: ```java import org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; import java.io.File; import java.io.IOException; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() throws IOException, SQLException { File yamlFile = new File("src/main/resources/config-sharding.yaml"); return ShardingSphereDataSourceFactory.createDataSource(yamlFile); } } ``` Spring Boot 启动时会自动加载该配置,并构建基于 ShardingSphere 规则的数据源实例[^3]。 --- ### 3.4 启用 SQL 日志输出(可选) 在 `application.yml` 中启用 SQL 输出以便调试: ```yaml spring: shardingsphere: props: sql-show: true ``` 开启后可以在日志中看到实际执行的 SQL 语句,便于分析分片路由行为[^5]。 --- ### 3.5 动态数据源支持(可选) 如果项目需要动态切换数据源(如 MySQL 与 ClickHouse),可以引入 `dynamic-datasource-spring-boot-starter` 并结合 AOP 实现多数据源切换。具体实现方式可参考相关开源项目。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小萨技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值