本地环境标识设置
本地父类maven配置
可以看到相关的分类,设置环境标识主要需要用到profiles
;
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<nacos.server>xx.xx.xx.xx:8848/</nacos.server>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
配置说明: 可以设置多套环境
- active:设置活跃环境名称,dev/pro/test等
- nacos:全局配置nacos的远程地址,服务发现和配置的默认组
- activation.activeByDefault:设置当前默认环境
刷新完成就可以看到maven的显示:
标识使用
服务下的yaml文件设置:
spring:
#在nacos中对应的dataID名
application:
#应用名称
name: lottery-strategy
profiles:
# 环境配置
active: @profiles.active@
--- # nacos 配置
spring:
cloud:
config:
override-none: true
allow-override: true
override-system-properties: false
nacos:
# 注册地址
server-addr: @nacos.server@
discovery:
# 注册组
group: @nacos.discovery.group@
namespace: ${spring.profiles.active}
config:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
file-extension: yaml
为了使的上面的参数能够正常获取使用,maven
构建的时候需要设置文件的过滤(占位匹配)操作,这样在yaml
中才能生效替换;
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring.boot.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 引入所有 匹配文件进行过滤 -->
<includes>
<include>application*</include>
<include>bootstrap*</include>
<include>logback*</include>
</includes>
<!-- 启用过滤 即该资源中的变量将会被过滤器中的值替换 -->
<filtering>true</filtering>
</resource>
</resources>
</build>
nacos的文件配置
设置DataId,Data ID
它的定义规则是:${prefix}-${spring.profile.active}.${file-extension}
1、prefix
默认为 spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。
2、spring.profile.active
即为当前环境对应的 profile
,可以通过配置项spring.profile.active
来配置。
3、file-exetension
为配置内容的类型(yaml
)