一 版本
Spring Booot 版本 3.2.4
Spring Cloud 版本 2023.0.1
Spring Cloud Alibaba 版本 2023.0.1.2
二 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
三 配置文件
相关配置放在bootstrap.yml中,项目启动时加载
# 此配置一定要与nacos配置一起放在bootstrap.yml文件中
spring:
application:
name: ${app_name:${APP_NAME:demo}}
nacos配置
spring:
application:
name: ${app_name:${APP_NAME:demo}}
cloud:
nacos:
username: ${config_username:${CONFIG_USERNAME:nacos}}
password: ${config_password:${CONFIG_PASSWORD:nacos}}
discovery:
server-addr: ${config_server_uri:${CONFIG_SERVER_URI:10.244.36.167:8848}}
namespace: ${config_profiles_active:${CONFIG_PROFILES_ACTIVE:dev}}
group: ${config_group:${CONFIG_GROUP:demo}}
service: ${spring.application.name}
config:
server-addr: ${config_server_uri:${CONFIG_SERVER_URI:10.244.36.167:8848}}
namespace: ${config_profiles_active:${CONFIG_PROFILES_ACTIVE:dev}}
group: ${config_group:${CONFIG_GROUP:demo}}
file-extension: yml
refresh-enabled: true # 开启配置自动刷新,默认开启,此处显示声明
四 配置类
方式一:通过 @ConfigurationProperties(prefix = "sys") 注解实现的配置类
package com.xxx.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* 系统配置
* @author xxx
* @date 2025-3-24 16:16:41
*/
@Configuration
@ConfigurationProperties(prefix = "sys")
@Data
public class SysConfig {
/**
* 时区
*/
private String timezone;
/**
* 多语言国际化
*/
private String acceptLanguage;
}
方式二:通过@Component和@RefreshScope实现的配置类
package com.xxx.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
@Component
@RefreshScope
@Data
public class SysConfig {
/**
* 时区
*/
@Value("${sys.timezone}")
private String timezone;
/**
* 多语言国际化
*/
@Value("${sys.acceptLanguage}")
private String acceptLanguage;
}
五 使用
在需要用到配置类的地方通过@Resource注解注入即可,或者通过@Bean构造注入
六 验证
登录nacos客户端,修改配置文件属性sys.timeZone,调用接口查看,配置信息已更新。