SDK获取nacos
1.导入依赖在pom.xml
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.1.0</version>
</dependency>
2.主类中(注意导入slf4j包)
try{
String serverAddr = "localhost:8848";
String dataId = "test";
String group = "DEFAULT_GROUP";
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
String content = configService.getConfig(dataId, group, 5000);
System.out.println(content);
}catch (NacosException e){
e.printStackTrace();
}
监听配置更新
configService.addListener(dataId, group, new Listener() {
@Override
public Executor getExecutor() {
return null;
}
@Override
public void receiveConfigInfo(String configInfo) {
System.out.println(configInfo);
}
});
SpringBoot获取nacos配置
1.导入依赖
<parent>
<artifactId>spring-boot-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.6.5</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.12</version>
</dependency>
</dependencies>
2.配置文件
nacos:
config:
server-addr: 127.0.0.1:8848
data-id: test
auto-refresh: true
bootstrap:
enable: true
3.使用
@NacosValue(value = "${spring.username}", autoRefreshed = true)
private String username;
SpringCloud使用nacos配置
1.导入依赖
<parent>
<artifactId>spring-boot-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.12.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
</dependency>
</dependencies>
2.bootstrap.yaml
spring:
application:
name: test
cloud:
nacos:
server-addr: 127.0.0.1:8848
3.配置文件
@Component
@RefreshScope
@Data
public class CommonConfig {
@Value("${spring.username}")
private String username;
}
拉取配置的优先级:
- 拉取dataid为xxx的配置(优先级最低)
- 拉取dataid为xxx.properties的配置
- 拉取dataid为xxx-${spring.profiles.active}.properties的配置(优先级最高)
拉取多个配置优先级
spring.application.name > extension-configs > shared-configs