公共配置文件
若依微服务版公共配置的提取
springboot有哪几种配置文件
2023/10/26 11:08:15
2023/10/26 11:08:54
Spring Boot 提供了多种配置文件的方式,常见的有以下几种:
application.properties:这是最常见的配置文件,使用键值对的形式进行配置。可以在其中设置各种属性,如数据库连接信息、服务器端口等。默认情况下,Spring Boot 会自动加载该文件。
application.yml:这是 YAML 格式的配置文件,也可以用于配置各种属性。相对于 properties 文件,YAML 文件更加简洁易读,支持层级结构和列表等特性。同样,默认情况下,Spring Boot 会自动加载该文件。
bootstrap.properties 或 bootstrap.yml:这些配置文件用于在应用程序启动前加载,主要用于外部配置的加载。例如,可以将一些敏感的配置信息放在这里,以便在应用程序启动时加载并覆盖默认配置。
application-{profile}.properties 或 application-{profile}.yml:这些配置文件是针对不同的环境或配置文件激活的特定配置。通过在文件名中使用激活的配置文件名称,可以根据不同的环境提供不同的配置。例如,可以创建 application-dev.properties 来配置开发环境,application-prod.properties 来配置生产环境。
需要注意的是,Spring Boot 配置文件的加载顺序是固定的,优先级从高到低依次为:命令行参数 > 外部配置文件 > profile-specific 配置文件 > 默认配置文件。这样可以确保在不同环境下正确加载和覆盖配置。
除了以上几种常见的配置文件,Spring Boot 还支持其他一些特殊的配置文件,如 application.xml(XML 格式的配置文件)和 application.groovy(Groovy 脚本格式的配置文件)。但是在实际应用中,较少使用这些特殊的配置文件格式。
- 在公共模块
xxx-common
创建xxx-common-config
,结构如下图所示:
![](/vuepress-lingdu-v2/assets/img-b163d6f0.png)
bootstrap.yml
示例内容
# 注册中西、配置中心 nacos服务地址
nacos-ip: 192.168.0.237:8848 # 测试局域网
#nacos-ip: 10.10.10.10:8848 #内网
# 熔断降级服务 控制台地址
sentinel-path: 192.168.0.230:8718 # 测试局域网
#sentinel-path: 10.10.10.10:8718 #内网
# 运行环境参考字段 涉及到定时任务参数 勿改动
#deployed_environment: outer_net_prod #外网生产环境
deployed_environment: local_area_network #测试环境
#deployed_environment: intranet #内网生产环境
# 定时任务参数 定时任务重要参数 勿动
org_quartz_scheduler_instanceName: Jsxy_${deployed_environment}
#act: prod
# jasypt加密秘钥,该秘钥可以自定义
jasypt:
encryptor:
password: 123456789
algorithm: PBEWithMD5AndDES
poolSize: 1
saltGeneratorClassname: org.jasypt.salt.RandomSaltGenerator
stringOutputType: base64
#########重点!!!!!!!!!!!!!!!!!!!!
iv-generator-classname: org.jasypt.iv.NoIvGenerator
# 默认解密识别是是ENC(..),如果需要定制不同,可以进行下面配置,如下ENC@[..]
# property:
# prefix: "ENC@["
# suffix: "]"
#spring配置
spring:
profiles:
# 环境配置prod dev
active: prod
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: ${nacos-ip}
namespace: JSXY
username: nacos
password: ENC(Zc7JtYmhgk6fQ2nKOQqCIMHsU796vlsV)
config:
# 配置中心地址
server-addr: ${nacos-ip}
namespace: JSXY
username: nacos
password: ENC(Zc7JtYmhgk6fQ2nKOQqCIMHsU796vlsV)
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
- 各个模块一般都会引入公共模块,这时候这里面的配置就会在各个模块都生效
- 例如其中一个模块
bootstrap.yml
配置是这样的
bootstrap.yml
# Tomcat
server:
port: 0
#spring配置
spring:
application:
# 应用名称
# name: xxxx-dimensiondoor
name: xxxx-dimensiondoor
# 应用路径 与网关配置中path一致 ##扫描系统接口方法中使用到##
systemRoute: dimensiondoor
# 公共配置在公共模块xxxx-common/xxxx-common-core/src/main/resources/config/bootstrap.yml