ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

HoRain云--Spring Boot 配置管理进阶:多环境、加密、动态刷新与配置中心

HoRain云--Spring Boot 配置管理进阶:多环境、加密、动态刷新与配置中心 本文讲解 Spring Boot 配置管理包括 profile、外部化配置、Jasypt 加密、Nacos 配置中心和动态刷新。正文1. 配置文件优先级命令行 环境变量 application-{profile}.yml application.yml。2. 多环境配置yaml复制下载# application.yml spring: profiles: active: dev --- spring: config: activate: on-profile: dev server: port: 8080 --- spring: config: activate: on-profile: prod server: port: 80或分文件application-dev.yml、application-prod.yml。3. 外部化配置bash复制下载java -jar app.jar --spring.config.location/etc/app/ java -jar app.jar --server.port9090环境变量bash复制下载export SPRING_DATASOURCE_URLjdbc:mysql://...4. ConfigurationPropertiesjava复制下载ConfigurationProperties(prefix app) Component public class AppProperties { private String name; private int timeout; private ListString hosts; // getter/setter }配合EnableConfigurationProperties或ConfigurationPropertiesScan。5. 敏感信息加密 Jasyptxml复制下载运行dependency groupIdcom.github.ulisesbocchio/groupId artifactIdjasypt-spring-boot-starter/artifactId version3.0.5/version /dependency加密bash复制下载java -cp jasypt.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \ inputmypassword passwordmasterkey algorithmPBEWithMD5AndDES配置yaml复制下载spring: datasource: password: ENC(密文) jasypt: encryptor: password: ${JASYPT_PASSWORD}6. Nacos 配置中心xml复制下载运行dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependencyyaml复制下载spring: config: import: nacos:app.yaml cloud: nacos: config: server-addr: localhost:8848 file-extension: yaml7. 动态刷新java复制下载RefreshScope Component public class DynamicConfig { Value(${app.timeout}) private int timeout; }Nacos 修改配置后自动刷新。8. 配置监听java复制下载NacosConfigListener(dataId app.yaml) public void onChange(String config) { // 处理变更 }9. 常见坑profile 未激活。配置优先级混淆。密钥硬编码。动态刷新与单例 Bean 状态冲突。10. 总结配置管理要区分环境、保护敏感信息、支持动态刷新。本地用 profile Jasypt分布式用 Nacos/Apollo。
返回列表