可以把本地配置文件写到nacos里,服务启动的时候拉取,可以管理多环境配置(开发,生产),换环境之后换配置比较方便,修改配置以后不用重启服务
- nacos里配置怎么写 服务名-版本(生产pro,开发dev).yml,内容把yml里的全选粘过来就行
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 #地址
配置自动刷新
- @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);
}
}
- @ConfigurationProperties注入,自动刷新,这个类同时必须用@Configuration标明是一个配置类,用@Autoward注解从容器中取出对象来用
@Data
@ConfigurationProperties(prefix = "user")
@Configuration
public class User {
private Long id;
private String username;
private String address;
}