返回

将SpringBoot中的所有配置全部装入Nacos,搞定所有配置相关的问题

后端

前言

在微服务项目开发过程中,配置管理是一项繁琐而重要的工作,特别对于使用SpringBoot的项目来说,配置的来源可能来自配置文件、数据库、Redis或者API接口等,开发者往往需要花费很多时间在配置的存储、管理以及更新上,SpringCloud Alibaba中的Nacos提供了一个非常好的配置中心服务,本文将主要介绍Nacos的简单使用,并详细演示如何将SpringBoot的配置从配置文件中全部装入到Nacos配置中心,并演示如何创建独立的名称空间进行管理,互不影响。

环境准备

  • JDK 1.8+
  • Nacos Server 2.0.5+
  • SpringBoot 2.6+
  • IDE(本文使用的是IntelliJ)

使用Nacos进行配置管理

Nacos提供了一个非常完善的配置中心服务,开发者可以将项目的配置信息存储在Nacos的配置中心,这样就可以通过Nacos的控制台对配置信息进行管理,也可以通过Nacos的API进行配置的更新,Nacos会将配置信息推送到各个Nacos的客户端,Nacos的客户端会自动将推送到本地并更新配置信息,整个过程对于开发者来说是完全透明的。

添加Nacos配置中心相关组件

Nacos Server的安装部署本文就不介绍了,开发者可以参考Nacos的官方使用手册,这里主要介绍Nacos的客户端组件的添加,在SpringBoot项目中添加Nacos的客户端组件非常简单,在项目的Maven配置文件中添加如下代码即可:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.6.RELEASE</version>
</dependency>

启动Nacos服务

在Nacos的安装目录的bin目录下执行如下命令启动Nacos服务:

./nacos-server start

当Nacos服务启动成功之后,访问Nacos控制台http://localhost:8848就可以看到Nacos的管理界面,并且Nacos会提供一个默认的名称空间(namespace),ID为public。

创建Nacos名称空间

进入Nacos管理控制台,在名称空间管理界面,点击“添加”按钮,在弹出的窗口中,给新的名称空间起一个名称即可,本文我们给名称空间起一个名称叫“develop”,点击确定即可。

将SpringBoot的配置装入Nacos

Nacos提供了一个非常人性化的配置界面,可以很方便的添加配置信息,在Nacos控制台的“配置管理”界面,选择刚刚创建的名称空间,并点击“添加配置”按钮,在弹出的窗口中,在“配置项”中填入SpringBoot配置的key,在“配置值”中填入SpringBoot配置的value,在“数据ID”中填入SpringBoot配置的配置文件名,如果SpringBoot是按照惯例定义配置文件的话,就填入application.properties,如果SpringBoot的配置类是定义在其他配置文件中的,那么就填入其他配置文件名。

如果想要将SpringBoot的所有配置信息全部装入Nacos,那么就需要重复上述步骤,将所有的配置信息全部添加到Nacos配置中心。

将Nacos配置信息推送到SpringBoot

开发者在SpringBoot的启动类上添加如下代码即可:

@EnableConfigurationProperties(NacosProperties.class)
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

然后在SpringBoot的application.properties配置文件中添加如下配置代码:

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=public

然后就可以将Nacos中的配置信息推送到SpringBoot项目中,开发者可以访问Nacos的控制台,观察SpringBoot的application.properties配置文件中的配置信息全部被Nacos中的配置信息所取代。

独立的名称空间

在很多场景下,一个项目会拥有多个不同的环境,比如开发、测试和生产环境,那么就需要给不同的环境创建独立的名称空间,这样在配置管理中才能够做到互不干扰,在Nacos控制台的“名称空间管理”界面,点击“添加”按钮,添加多个名称空间即可,比如本文就可以添加多个名称空间,比如“develop”、”test“和”prod“,当Nacos接收到推送的配置信息的时候,会根据配置的名称空间信息,自动将配置信息推送到相应的名称空间中。

总结

Nacos为我们提供了一个非常完善的配置中心服务,我们可以通过Nacos的控制台轻松的管理项目的配置信息,也可以通过Nacos的API来对配置信息进行管理,Nacos会将配置信息推送到各个Nacos的客户端,Nacos的客户端会自动将推送到本地并更新配置信息,整个过程对于开发者来说是完全透明的,极大的减轻了开发者的工作负担,提高了开发者的开发效率。