SpringBoot 集成 Nacos

本文详细介绍了如何在SpringBoot项目中集成Nacos配置中心,包括引入依赖、设置Nacos配置、加载配置、验证集成效果以及实现配置动态生效。通过创建bootstrap.properties文件、添加@EnableDiscoveryClient注解和使用@RefreshScope注解实现配置动态更新。


Nacos安装详见:Spring Cloud 系列之 Nacos 配置中心


一、前言

上一篇已经讲解了怎样安装安装、启动、配置 Nacos,这篇我们讲解如何在项目中使用 Nacos

还不了解 Nacos 的详见:Spring Cloud 系列之 Nacos 配置中心

在集成 Nacos 之前,首先我们要先创建一个 Spring Boot 项目:IDEA 创建 SpringBoot 项目


二、Nacos集成

1、引入Nacos依赖

<dependencies>
	<!-- nacos -->
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
    	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    	<version>2.2.1.RELEASE</version>
	</dependency>
    <dependency>
    	<groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.2.1.RELEASE</version>
    </dependency>
<dependencies>

注:Spring Boot版本要低于2.4,否则启动应用会报错。
在这里插入图片描述


2、设置Nacos配置

项目中默认配置文件是 application.propertiesNacos 配置加在此配置文件中的话,应用启动会报连接 Nacos 失败,我们需要创建 bootstrap.propertiesbootstrap.yml 配置文件(添加任意一个即可),下面我们以 bootstrap.properties 为例:

spring.application.name=apm-mobile-android
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=nacos
spring.cloud.nacos.server-addr=10.0.7.115:18117

spring.cloud.nacos.discovery.namespace=PROD
spring.cloud.nacos.config.namespace=PROD
spring.cloud.nacos.config.timeout=3000
spring.cloud.nacos.config.refresh-enabled=true

spring.cloud.nacos.config.group=apm
spring.cloud.nacos.config.prefix=${spring.application.name}
spring.cloud.nacos.config.file-extension=properties

spring.cloud.nacos.config.shared-configs[0].group=apm
spring.cloud.nacos.config.shared-configs[0].data-id=apm-mobile-android.properties
spring.cloud.nacos.config.shared-configs[0].refresh=true

spring.liquibase.enabled=false

在这里插入图片描述


3、加载Nacos配置中心配置项

在初始化类中添加 @EnableDiscoveryClient 注解即可:

package com.example.springbootdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class SpringbootdemoApplication {

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

}

在这里插入图片描述


4、Nacos集成验证

Nacos配置如下:

在这里插入图片描述

启动应用,然后访问:http://localhost:8085/hello

出现如下界面说明加载Nacos配置成功。

在这里插入图片描述


5、Nacos配置中心配置项动态生效

需要在配置对象中添加 @RefreshScope 注解,然后重启应用。

package com.example.springbootdemo.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Data
@Component
@Configuration
@RefreshScope
public class GlobalConfig {

    @Value("${data.domain:http://10.0.0.1:18080}")
    private String dataDomain;

    @Value("${log.level:DEBUG}")
    private String logLevel;
}

在这里插入图片描述

重启后,访问:http://localhost:8085/hello

在这里插入图片描述

Nacos 配置中的 log.level 修改为 DEBUG ,然后重新访问:http://localhost:8085/hello,出现如下界面说明 Nacos 配置动态生成成功。

在这里插入图片描述


SpringBoot可以通过集成Nacos来实现配置管理和服务发现的功能。 首先,通过集成Nacos的配置管理功能,SpringBoot可以从Nacos中获取配置项的值。Nacos提供了动态配置的能力,可以在Nacos中添加多个配置集,每个配置集下可以有多个配置项。当Nacos中的配置项发生修改时,SpringBoot可以及时获取到最新的配置值。这样,在开发和部署过程中不需要重新打包部署,可以动态更新配置,提高了系统的灵活性和可维护性。你可以在中找到更多关于Spring BootNacos的新功能使用手册。 其次,通过集成Nacos的服务发现功能,SpringBoot可以将自己注册到Nacos服务器,并从Nacos中获取其他服务的信息。Nacos作为服务发现的中心,可以管理和监控所有注册在其上的服务实例。SpringBoot可以使用Nacos提供的服务发现功能,实现服务之间的调用和负载均衡。你可以在中找到关于Spring Boot集成Nacos服务发现的具体配置和使用方式。 要完成SpringBoot集成Nacos,你需要在Spring Boot项目的pom.xml文件中添加Nacos相关的依赖。例如,你可以在中找到Nacos的配置依赖和中找到Nacos的服务发现依赖。 总结起来,通过集成NacosSpringBoot可以实现配置管理和服务发现的功能,提高系统的灵活性和可维护性。你可以参考上述提供的链接和依赖来了解更多关于SpringBoot集成Nacos的详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值