Bootstrap

SpringCloud Alibaba - nacos 从配置中心加载配置

Spring Cloud Alibaba 通过 Nacos Config 组件实现了从 Nacos 配置中心加载配置的功能,以下是具体的操作步骤和配置方法:

1. 引入依赖

在项目的 pom.xml 文件中加入 Spring Cloud Alibaba Nacos Config 的依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>最新版本</version> <!-- 替换为当前适用的最新版本 -->
</dependency>

2. 配置基本信息

在项目的 bootstrap.propertiesbootstrap.yml 文件中配置 Nacos 服务器地址及应用基本信息:

spring.cloud.nacos.config.server-addr=你的Nacos服务器地址:端口
spring.application.name=你的应用名
spring.cloud.nacos.config.namespace=可选的命名空间ID
spring.cloud.nacos.config.group=DEFAULT_GROUP # 默认分组

3. 配置文件映射

默认情况下,Spring Cloud 会尝试从 Nacos 加载 application.propertiesapplication.yml 文件。如果你想加载其他名字的配置文件,可以添加如下配置:

spring.cloud.nacos.config.file-extension=yml # 或 properties
spring.cloud.nacos.config.shared-dataids=nacos-config.yml # 配置文件名
spring.cloud.nacos.config.refreshable-dataids=${spring.cloud.nacos.config.shared-dataids} # 指定可刷新的配置文件

4. 动态刷新配置

为了让应用能够实时获取并应用 Nacos 中配置的变化,可以在需要动态刷新的 Bean 上添加 @RefreshScope 注解:

@RefreshScope
@Configuration
public class AppConfig {
    @Value("${example.property}")
    private String exampleProperty;
    // ...
}

5. 启动应用

启动你的 Spring Boot 应用,它将从 Nacos 配置中心加载配置。

6. 手动触发配置刷新

在应用中,你可以通过调用 /refresh 端点来手动刷新配置(需要开启 Spring Actuator):

curl -X POST "http://localhost:8080/actuator/refresh"

注意事项

  • 确保 Nacos Server 正常运行并且网络可达。
  • 使用 bootstrap.propertiesbootstrap.yml 而非 application.propertiesapplication.yml 来配置 Spring Cloud,这是因为 bootstrap 文件的加载优先级高于 application 文件,且在应用上下文初始化之前加载,适合配置服务发现、配置中心等基础设施。
  • 为提高安全性,生产环境中应合理配置 Nacos 的认证信息。

通过上述步骤,你的 Spring Cloud 应用就能成功地从 Nacos 配置中心加载配置,并且在配置变更时能够及时刷新配置信息。

;