- 首先需要明确Nacos作为配置中心能干什么?答:我的理解就是将配置文件动态化,可以实时的修改大部分配置项。
- 实现步骤
- 导入maven
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 配置application.yml/bootstrap.yml/application.properties,随便哪个配置文件中设置Nacos的地址、用户名密码、配置文件路径和分组,具体内容如下:
server:
port: 3001 #服务端口
spring:
application:
name: practice #服务名称
cloud:
nacos:
# discovery: # 这里配置Nacos作为注册中心,我的项目已经处理统一配置了,所以这里就注释掉了
# server-addr: localhost:8801
# username: nacos
# password: nacos
config: #这里配置Nacos作为配置中心,对于地址和用户名我已经统一配置过了,所以这里也注释掉了
# server-addr: 127.0.0.1:8801
# username: nacos
# password: nacos
# file-extension: yaml # 默认值包含yaml,这一行可以省略不写
group: DEFAULT_GROUP # 配置Nacos分组,默认就是DEFAULT_GROUP,这一行可以省略
prefix: ${spring.application.name}-springCloud3 # 默认配置是“${spring.application.name}”,
#如果Nacos中的配置文件名和服务名一致,则这一行可以省略,
#如果要起别名,比如我的“${spring.application.name}-springCloud3”,那这里不能省略
- 到这里配置中心的设置就完成了,只要保证服务和Nacos正常通信那就没问题了,后续只需要关注Nacos中的配置文件内容就可以了,这里贴一个我的Nacos配置文件截图:
- 总结:配置Nacos作为配置中心很简单,不要把这个问题想复杂了,自己上手尝试一下很容易就掌握了,一起加油!
- 特殊情况
- 动态配置属性值,举个例子:再某个Nacos配置文件application.yaml文件中我设置了属性“username”为张三,如下:
server:
port: 9090
spring:
application:
name: practice
username: 张三 #启动服务后将Value改为“李四”
在我启动服务“practice”后,更改username的值为“李四”
然后我在某个controller中使用@Value调用它,如下:
@RestController
@RequestMapping("/user")
public class UserController() {
@Value("${username}")
private String username;
@GetMapping
public String getUsername() {
return username;
}
}
此时调用“localhost:8080/user"发现得到的结果还是“张三”,嗯?没起作用是怎么回事呢!查阅资料中...,哎,最后发现,对于配置文件配置的属性值,想要实现Nacos动态配置,需要在类作用于加上注解:@RefreshScope,代码如下:
@RefreshScope
@RestController
@RequestMapping("/user")
public class UserController() {
@Value("${username}")
private String username;
@GetMapping
public String getUsername() {
return username;
}
}
重启服务后刷新"localhost:8080/user",发现得到的结果是“李四”,证明动态配置完成。
标签:username,配置文件,spring,配置,Nacos,application,设置 From: https://www.cnblogs.com/oxygen-qq/p/18260348