SpringBoot 集成 Nacos

2年前 (2022) 程序员胖胖胖虎阿
260 0 0

目录

  • 一、前言
  • 二、Nacos集成
    • 1、引入Nacos依赖
    • 2、设置Nacos配置
    • 3、加载Nacos配置中心配置项
    • 4、Nacos集成验证
    • 5、Nacos配置中心配置项动态生效

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,否则启动应用会报错。
SpringBoot 集成 Nacos

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

SpringBoot 集成 Nacos

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();
    }

}

SpringBoot 集成 Nacos

4、Nacos集成验证

Nacos配置如下:

SpringBoot 集成 Nacos

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

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

SpringBoot 集成 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;
}

SpringBoot 集成 Nacos

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

SpringBoot 集成 Nacos

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

SpringBoot 集成 Nacos

版权声明:程序员胖胖胖虎阿 发表于 2022年9月18日 上午10:16。
转载请注明:SpringBoot 集成 Nacos | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...