公共配置文件

若依微服务版公共配置的提取

springboot有哪几种配置文件

2023/10/26 11:08:15

springboot有哪几种配置文件

2023/10/26 11:08:54

Spring Boot 提供了多种配置文件的方式,常见的有以下几种:

  1. application.properties:这是最常见的配置文件,使用键值对的形式进行配置。可以在其中设置各种属性,如数据库连接信息、服务器端口等。默认情况下,Spring Boot 会自动加载该文件。

  2. application.yml:这是 YAML 格式的配置文件,也可以用于配置各种属性。相对于 properties 文件,YAML 文件更加简洁易读,支持层级结构和列表等特性。同样,默认情况下,Spring Boot 会自动加载该文件。

  3. bootstrap.properties 或 bootstrap.yml:这些配置文件用于在应用程序启动前加载,主要用于外部配置的加载。例如,可以将一些敏感的配置信息放在这里,以便在应用程序启动时加载并覆盖默认配置。

  4. application-{profile}.properties 或 application-{profile}.yml:这些配置文件是针对不同的环境或配置文件激活的特定配置。通过在文件名中使用激活的配置文件名称,可以根据不同的环境提供不同的配置。例如,可以创建 application-dev.properties 来配置开发环境,application-prod.properties 来配置生产环境。

需要注意的是,Spring Boot 配置文件的加载顺序是固定的,优先级从高到低依次为:命令行参数 > 外部配置文件 > profile-specific 配置文件 > 默认配置文件。这样可以确保在不同环境下正确加载和覆盖配置。

除了以上几种常见的配置文件,Spring Boot 还支持其他一些特殊的配置文件,如 application.xml(XML 格式的配置文件)和 application.groovy(Groovy 脚本格式的配置文件)。但是在实际应用中,较少使用这些特殊的配置文件格式。

  1. 在公共模块xxx-common创建xxx-common-config,结构如下图所示:
  1. 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}

  1. 各个模块一般都会引入公共模块,这时候这里面的配置就会在各个模块都生效
  2. 例如其中一个模块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