Nacos配置中心

100 阅读1分钟

可以把本地配置文件写到nacos里,服务启动的时候拉取,可以管理多环境配置(开发,生产),换环境之后换配置比较方便,修改配置以后不用重启服务

  1. nacos里配置怎么写 服务名-版本(生产pro,开发dev).yml,内容把yml里的全选粘过来就行

image.png 2. 程序里怎么拉取配置

  • 导入依赖
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 在resource目录里新建一个bootstrap.yml文件,这个文件是引导文件,级别高于application.yml
spring:
  application:
    name: user-service #要拉取得应用名
  profiles:
    active: dev #选择要获取的版本
  cloud:
    nacos:
      config:
        file-extension: yml
        server-addr: localhost:8848 #地址

配置自动刷新

  1. @value+@RefreshScope @Value给变量赋值配置文件中的配置,@RefreshScope自动刷新配置内容,写在类上
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {

    @Autowired
    private UserService userService;

    @Value("${user.username}")
    private String username;

    @GetMapping("/{id}")
    public User queryById(@PathVariable("id") Long id) {
        System.out.println(username);
        return userService.queryById(id);
    }
}
  1. @ConfigurationProperties注入,自动刷新,这个类同时必须用@Configuration标明是一个配置类,用@Autoward注解从容器中取出对象来用
@Data
@ConfigurationProperties(prefix = "user")
@Configuration
public class User {
    private Long id;
    private String username;
    private String address;
}