nacos~共享配置和导入公用配置文件

在spring cloud中的config server中,对于公用的配置我们会放到application-{profiles.active}.yml中,对于共享配置片断,可以使用include来实现;而对于nacos来说,是不能直接继承了,则需要使用nacos自己的语法。

一 共享配置片断

https://www.cnblogs.com/lori/p/15893020.html

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.60.138:80
        namespace: zzl
      config:
        server-addr: 192.168.60.138:80
        file-extension: yaml
        namespace: zzl
        shared-configs[0]:
          data-id: actuator.yaml
          refresh: true
        shared-configs[1]:
          data-id: const.yaml
          refresh: true

二 导入配置文件(继承配置)

  • spring.config.import属性,用来导入本地或者远程的公用配置文件
spring:
  application:
    name: @artifactId@
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848}
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
  config:
    import:
      - nacos:application-@profiles.active@.yml
      - nacos:${spring.application.name}-@profiles.active@.yml

以上两种共享配置文件的方法,非常实用,希望对咱们有所帮助。

三 本地与远程配置优先级

  1. 远程优先
  2. 其次是本地
  • 测试
    application.yml
spring:
  application:
    name: @artifactId@
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST:localhost}:${NACOS_PORT:8848}
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
  config:
    import:
      - nacos:auth.yml
  • 本地配置类,开启配置自动刷新
@Data
@RefreshScope
@ConfigurationProperties("auth")
public class AuthProperties {
  private String name;
  private String date;
}

//启动类
@SpringBootApplication
@EnableConfigurationProperties(AuthProperties.class) //开启AuthProperties配置bean
@Slf4j
public class LindDemoApplication {}
  • 远程nacos配置文件auth.yml
auth:
 name: lind-remote
posted @ 2022-07-06 15:16  张占岭  阅读(5013)  评论(2编辑  收藏  举报