java客户端访问nacos配置使用总结
客户端访问nacos配置:
父工程:
子工程:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.0</version>
</dependency>
pom.yml
spring:
application:
name: userservice
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: 127.0.0.1:8848 # nacos地址
config:
file-extension: yaml # 文件后缀名
namespace: 0223cc90-7cf0-4f11-a00d-fae7f81ea892
group: DEFAULT_GROUP
username: nacos
password: nacos
5.application.yml
cloud:
nacos:
config:
import-check:
enabled: false
6.配置一个对应要访问nacos yaml文件的类:
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
private String mysqldb;
private String username;
private String password;
}
-
2种读取nacos配置文件数据的方法:
@Value("${pattern.mysqldb}")
private String dbip;@GetMapping("dbip")
public String dbip(){
return dbip;
}方法2:PatternProperties 类读取nacos
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
private String mysqldb;
private String username;
private String password;
}
controller:
@Autowired
private PatternProperties properties;
@ApiOperation("Config")
@GetMapping("Config")
public Object Config(){
return properties;
}
9.数据热更新的2种方式:
最终的目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。
方式1:
在@Value注入的变量所在类上添加注解@RefreshScope
方式2:
使用@ConfigurationProperties注解代替@Value注解。
在user-service服务中,添加一个类,读取patterrn.dateformat属性
10.【注意事项】:
spring-cloud-starter-alibaba-nacos-config 模块移除了 spring-cloud-starter-bootstrap 依赖,如果你想以旧版的方式使用,你需要手动加上该依赖,现在推荐使用spring.config.import方式引入配置。
如果你想使用bootstrap来进行配置的话,就在pom.xml文件里面添加该依赖即可,然后按照官方文档进行配置:
在pom.xml文件下引入依赖
pom.xml demo:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.0</version>
</dependency>