动态读取nacos中修改的项目配置文件

本项目用的还是springboot项目,咱们直接上代码

一:首先看下nacos中需要动态获取的属性
在这里插入图片描述

二:把需要动态读取的配置类中的属性整理一个实体类

mport lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@ConfigurationProperties(prefix = "spring.datasource") 
@Component
public class DataSourceEmpty {

    private String driverClassName;

    private String password;

    private String url;

    private String username;
}

1:注意nacos中配置的是spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver 。spring.datasource.driver-class-name用 - 横岗连接的属性。实体类中则对应驼峰即可。
2:prefix 是 spring.datasource。driverClassName 是driver-class-name。主要就是利用@ConfigurationProperties这个注解实现。
3:springcloud则是用@Refre

### 动态读取Nacos配置 为了使Spring Boot应用能够动态读取来自Nacos配置,在项目中除了引入必要的依赖外,还需要设置一些特定属性来指定如何连接到Nacos服务器以及定位所需的配置文件。 #### 添加Maven依赖 首先确保项目的`pom.xml`包含了用于集成Nacos配置管理的支持库: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` 此依赖项允许应用程序与Nacos进行交互并获取其存储的配置数据[^3]。 #### 配置application.properties/yml 接着定义基本的应用程序配置参数以便于识别目标Nacos实例及其内部的具体资源位置。例如: ```yaml spring: application: name: demo-addr: localhost:8848 # Nacos的服务地址 file-extension: yaml # 文件扩展名偏好 group: DEFAULT_GROUP # 组名,默认即可满足多数场景需求 prefix: ${spring.application.name} # 可选;通常不需要额外设定因为已经由服务名为基础构建 ``` 上述配置使得客户端可以从Nacos检索具有`.yaml`后缀并与当前微服务同名的数据源[^1]。 #### 实现自动刷新机制 为了让更改后的配置能即时生效而无需重启整个进程,可以在控制器或其他组件上利用`@RefreshScope`注解标记那些希望响应变化的方法或字段,并配合使用`@Value`注入具体键对应的值: ```java @RestController @RequestMapping("/config") @RefreshScope public class ConfigController { @Value("${example.property}") private String property; @GetMapping("/get-property") public ResponseEntity<String> getProperty() { return ResponseEntity.ok(property); } } ``` 当更新了远程仓库里的相应条目之后,只需触发一次HTTP请求访问该接口就能观察到最新版的内容被返回给调用者。这得益于内置监听器监测到了事件的发生从而促使局部变量重新加载关联路径下的新数值。 另外一种方式是借助`ConfigurationProperties`绑定更复杂的结构体对象而非单一字符串形式的表现层属性。不过无论采用哪种手段都离不开先期准备好的基础设施建设工作——即正确安装部署好Nacos集群并且合理规划命名空间、权限控制等方面事宜以保障生产环境下稳定可靠地提供此项特性支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值