Nacos配置管理
一.统一配置管理
配置更改热更新
1.配置管理–>配置列表
2.填写配置信息
配置内容:
pattern:
dateformat: yyyy-MM-dd HH:mm:ss
3.项目配置获取
1)引入Nacos的配置管理客户端依赖:
<!--nacos配置管理依赖包-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2)在resource目录下添加一个bootstrap.yml文件【这个文件是引导文件,优先级高于application.yml】:
注意:application.yml文件中相同的配置要删除
spring:
application:
name: userservice
profiles:
active: public #环境(userservice所在的环境)
cloud:
nacos:
server-addr: localhost:8848 #nacos注册中心的地址
config:
file-extension: yaml #配置文件后缀
3)测试
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@Value("${pattern.dateformat}")
private String dateFormat;
@GetMapping("now")
public String hello() {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateFormat));
}
}
访问结果:
4.配置自动更新(热更新)
方式一:
1)在服务的控制层【Controller层】添加注解@RefreshScope
,重启服务
访问结果:
2)修改Nacos上的配置信息
pattern:
dateformat: yyyy年MM月dd日 HH:mm:ss
访问结果:
方式二:
1)新建PatternProperties类
@Data
@Component //标注一个类为Spring容器的Bean
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
}
2)修改Controller层,重启服务
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private PatternProperties properties;
@GetMapping("now")
public String hello() {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));
}
}
3)修改Nacos上的配置信息(同方法一),访问地址
5.多服务共享配置
微服务会从nacos读取的配置文件:
- [服务名]-[springlprofile.active].yaml,环境配置
- [服务名].yaml,默认配置,多环境共享
优先级:
- [服务名]-[环境].yaml>[服务名].yaml>本地配置
.多服务共享配置***
微服务会从nacos读取的配置文件:
- [服务名]-[springlprofile.active].yaml,环境配置
- [服务名].yaml,默认配置,多环境共享
优先级:
- [服务名]-[环境].yaml>[服务名].yaml>本地配置