九、通过Nacos-2.3.2进行服务配置

提示信息:在高版本springboot中,不自动读取bootstrap.yml文件了,自己用时可引入spring-cloud-starter-bootstrap包。
Nacos服务注册发现参考://www.greatytc.com/p/ba298e0a2eab
spring-cloud-alibaba测试的版本是:2023.0.1.2
请看最新文档,最新文档,最新文档:https://sca.aliyun.com/docs/2023/user-guide/nacos/quick-start/

1. 服务中引入Nacos配置包

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2. nacos接入配置文件

  • 微服务配置文件:application.yml
  • 现在使用的nacos版本是2.3.2
  • 直接在application.yml中配置就可以
  • 配置如下:
spring:
  application:
    name: oauth2-server
  config:
      import:
        - nacos:${spring.application.name}.yaml?refreshEnabled=true
  cloud:
    nacos:
      serverAddr: 10.10.1.6:8848
      username: nacos
      password: nacos
      discovery:
        register-enabled: true
        # server-addr: 10.10.1.6:8848
        ip: 10.10.1.2

3. 在nacos中添加配置

Nacos新增配置图
    1. Data ID命名规则:${prefix}-${spring.profiles.active}.${file-extension}
    • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
    • spring.profiles.active 即为当前环境对应的 profile,没有就不用配置了,有不同环境也可以放不同命名空间。注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}**
    • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型
    1. Group可以使用默认的,也可以自定义,但是要和application.yml中的group一致,(若有gateway网关服务,gateway服务必须要和其他微服务在同一组,才能找到路由地址
    1. 选好格式,记得Data ID中要有这个格式后缀(yamlproperties
    1. 填写配置信息

4. 配置自动更新

使用Spring Cloud 原生注解 @RefreshScope,这样通过@Value注解取到的值是更新过的(@ConfigProperties注解不是)
新版本在导入nacos配置的时候加了,这不加不知道可不可以。

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

  @Value("${useLocalCache:false}")
  private boolean useLocalCache;

  @RequestMapping("/get")
  public boolean get() {
      return useLocalCache;
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。