流程:
1.在servciceorder(需要运行的服务) pom中加入依赖:
<!--nacosd的客户端依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--nacos统一配置管理客户端依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
经测试:2.1.1.RELEASE版本可以在服务启动的时候控制台打印出nacos文件中的属性,这样起码可以知道是否连接到nacos配置文件了。这个不加不影响取值。效果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/0ead48b46ad5420bbdf7b0ed8b1885f4.png
2.新建bootstrap.yml
作用:用于存储nacos配置信息,实际开发中,我们要先读取nacos统一配置文件中的配置信息,而bootstrap.yml优先级高于 application.yml,项目启动时会先加载bootstrap.yml,找到nacos的配置信息,然后再去加载application.yml。
spring:
application:
name: userservice
profiles:
active: dev #环境
cloud:
nacos:
server-addr: localhost:8848
config:
file-extension: yml #文件后缀名
namespace: 8d2225df-e165-4211-8c9d-63a55f5e12d2 #命名空间的id。
注意:如果你的服务设置了命名空间,一定要加上namespace 的配置!!!
注意:这里是根据name(服务名)+ active + file-extension 组合起来去找对应nacos配置文件。
3.nacos的配置:
4.controller调用:
@RestController
@RequestMapping("/user")
/*@RefreshScope*/
public class UserController {
//从配置文件中获取数属性,这里是测试获取nacos统一配置文件中的属性
@Value("${pattern.dateformat}")
private String sDateFormat;
@Value("${myname}")
private String sMyname;
@GetMapping("now")
public String now(){
System.out.println("11:"+sDateFormat);
System.out.println("22:"+sMyname);
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(sDateFormat));
}
}
–>经过测试,@RefreshScope不写好像也可以。
浏览器访问查看效果:
控制台查看正常打印: