概要
nacos 可以作为服务注册发现中心,也可以作为配置中心,作为配置中心的时候,系统的配置可以做到自动刷新,即当配置服务器的数据发生更改时,客户端的配置会进行自动的更新。
实现步骤
1.修改maven 配置
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2.增加bootstrap.properties
这个是文件是启用nacos作为配置中心的文件。
图标有朵云,表示启用nacos 作为配置中心。
//配置nacos作为配置服务器
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
//配置模式为开发模式
spring.profiles.active=dev
//nacos配资使用yml 作为扩展名
spring.cloud.nacos.config.file-extension=yml
//下面的配置时公共配置,即可以在不同应用之间进行共享。
spring.cloud.nacos.config.shared-dataids=common.yml
spring.cloud.nacos.config.refreshable-dataids=common.yml
springcloud 是使用配置优先的。
比如我现在有一个应用为:
jpaas-form
系统会按照如下的配置进行查找
1.先找 jpaas-form-dev.yml,如果找到了则返回,如果找不到则进行下一步。
2.查找 jpaas-form.yml 如果找不到,则查找共享的配置,根据上面的配置他会查找common.yml
这里配置格式,可以是 yaml 或者 properties
3.在程序中使用
@RefreshScope public class SysSeqIdController extends BaseController<SysSeqId> { @Value( value = "${user.name}") private String username=""; @Value( value = "${sys.name}" ) private String uploaddir=""; @Autowired private User user;
@RefreshScope 是实现自动刷新配置。
user.name,sys.name 是配置的参数
可以使用 yml 的格式进行配置。
我们还可以配置对象的方式进行参数进行注入,使用相当方便。
比如:
user:
name: ray
address: guangzhou
编写用户代码如下:
@Data @Component @ConfigurationProperties(prefix = "user") public class User { private String name=""; private String address=""; }
这样 数据就会自动配置好用户对象,使用下面的代码进行注入。
@Autowired private User user;
同样,这个对象在配置中心修改后也能进行自动刷新。
4.将数据库配置放到nacos 配置中心。
我们一般将数据库配置,配置到 application.properties 文件中,这有个坏处,当我需要打包时,需要在启动时,指定这些配置,配置会太多。
因此,我们需要将这些配置放置到 nacos ,在启动应用的时候,我们只需要指定 nacos 的地址,这样我们 就可以启动微服务应用。
当数据库配置等需要修改时,我们只需修改naocs的配置即可,不需要修改程序包。
nacos配置如下:
程序配置中心配置如下:
在bootstrap-dev.properties 指定 nacos的配置 nacos-config-dev.properties
在 IDEA 中指定 配置 nacos.address
使用命令行启动微服务
java -jar jpaas-user.jar --nacos.address=192.168.1.10:8848 指定配置中心地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人