# Nacos Config 2.4.x Example
## 项目说明
Spring Boot 2.4.0 版本开始默认不启动 bootstrap 容器
本项目演示如何在 Spring boot >= 2.4.0 版本不启用 bootstrap 容器情况下如何使用 nacos
[Nacos](https://github.com/alibaba/Nacos) 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
## 示例
### 如何接入
1. 首先,修改 pom.xml 文件,引入 Nacos Config Starter
```xml
org.springframework.boot
spring-boot-starter-web
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
org.springframework.cloud
spring-cloud-starter-bootstrap
```
2. 在应用的 /src/main/resources/***application.yml*** 配置文件中配置 Nacos Config 元数据
```yaml
server:
port: 8888
spring:
application:
name: nacos-config-import-example
cloud:
nacos:
config:
name: test.yml
file-extension: yml
# 2.4.0 新增配置 spring.config.import
config:
import:
- optional:nacos:127.0.0.1:8848
```
3. 在 nacos 创建 test.yml
```yaml
configdata:
user:
age: 21
name: freeman
map:
hobbies:
- art
- programming
intro: Hello, I'm freeman
users:
- name: dad
age: 20
- name: mom
age: 18
```
4. 完成上述操作后,应用会从 Nacos Config 中获取相应的配置,并添加在 Spring Environment 的 PropertySources 中
```java
// controller
@RestController
public class UserController {
@Autowired
private UserConfig userConfig;
@GetMapping
public String get() throws JsonProcessingException {
return new ObjectMapper().writeValueAsString(userConfig);
}
}
// ConfigurationProperties
@ConfigurationProperties(prefix = "configdata.user")
public class UserConfig {
private String name;
private Integer age;
private Map map;
private List users;
// getters and setters ...
public static class User {
private String name;
private Integer age;
// getters and setters ...
}
}
```
验证动态刷新
访问 http://localhost:8888
再从 nacos 修改配置, 再次访问即可验证动态配置生效