每天一个知识点-关于配置的问题

199 阅读1分钟

resource目录下有如下bootstrap.yml配置文件

# @xxx@ 从pom.xml中取值, 所以 @xx@ 标注的值,都不能从nacos中获取
zuihou:
  nacos:
    ip: ${NACOS_IP:@pom.nacos.ip@}
    port: ${NACOS_PORT:@pom.nacos.port@}
    namespace: ${NACOS_ID:@pom.nacos.namespace@}

spring:
  main:
    allow-bean-definition-overriding: true
  application:
    name: @project.artifactId@
  profiles:
    active: @pom.profile.name@
  cloud:
    nacos:
      config:
        server-addr: ${zuihou.nacos.ip}:${zuihou.nacos.port}
        file-extension: yml
        namespace: ${zuihou.nacos.namespace}
        shared-configs:
          - dataId: common.yml
            refresh: true
          - dataId: redis.yml
            refresh: false
          - dataId: mysql.yml
            refresh: true
          - dataId: rabbitmq.yml
            refresh: false
        enabled: true
      discovery:
        server-addr: ${zuihou.nacos.ip}:${zuihou.nacos.port}
        namespace: ${zuihou.nacos.namespace}
        metadata: # 元数据,用于权限服务实时获取各个服务的所有接口
          management.context-path: ${server.servlet.context-path:}${spring.mvc.servlet.path:}${management.endpoints.web.base-path:}

# 只能配置在bootstrap.yml ,否则会生成 log.path_IS_UNDEFINED 文件夹
# window会自动在 代码所在盘 根目录下自动创建文件夹,  如: D:/data/projects/logs
logging:
  file:
    path: /Users/brockzhang/vasense/logs
    name: ${logging.file.path}/${spring.application.name}/root.log

# 用于/actuator/info
info:
  name: '@project.name@'
  description: '@project.description@'
  version: '@project.version@'
  spring-boot-version: '@spring.boot.version@'
  spring-cloud-version: '@spring.cloud.version@'

pom.xml文件


<profiles>
    <!-- 开发 -->
    <profile>
        <id>dev</id>
        <activation>
            <!--默认激活配置-->
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <!--当前环境-->
            <pom.profile.name>dev</pom.profile.name>
            <!--Nacos配置中心地址-->
            <pom.nacos.ip>写你自己的ip</pom.nacos.ip>
            <pom.nacos.port>8848</pom.nacos.port>
            <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
            <pom.nacos.namespace>写自己的</pom.nacos.namespace>
            <pom.seata.namespace></pom.seata.namespace>
        </properties>
    </profile>
    <!-- docker 环境 -->
    <profile>
        <id>docker</id>
        <properties>
            <pom.profile.name>docker</pom.profile.name>
            <!--Nacos配置中心地址-->
            <pom.nacos.ip>自己的ip</pom.nacos.ip>
            <pom.nacos.port>8848</pom.nacos.port>
            <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
            <pom.nacos.namespace>写自己的</pom.nacos.namespace>
            <pom.seata.namespace>写自己的</pom.seata.namespace>
        </properties>
    </profile>
    <!-- 生产 -->
    <profile>
        <id>prod</id>
        <properties>
            <pom.profile.name>prod</pom.profile.name>
            <!--Nacos配置中心地址-->
            <pom.nacos.ip>127.0.0.1</pom.nacos.ip>
            <pom.nacos.port>8848</pom.nacos.port>
            <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
            <pom.nacos.namespace>写自己的</pom.nacos.namespace>
            <pom.seata.namespace>写自己的</pom.seata.namespace>
        </properties>
    </profile>
</profiles>