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

    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

注: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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在这里插入图片描述


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 {

<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
    <span class="token class-name">SpringApplication</span><span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token class-name">SpringbootdemoApplication</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">,</span> args<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">new</span> <span class="token class-name">BootstrapManager</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述


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 {

<span class="token annotation punctuation">@Value</span><span class="token punctuation">(</span><span class="token string">"${data.domain:http://10.0.0.1:18080}"</span><span class="token punctuation">)</span>
<span class="token keyword">private</span> <span class="token class-name">String</span> dataDomain<span class="token punctuation">;</span>

<span class="token annotation punctuation">@Value</span><span class="token punctuation">(</span><span class="token string">"${log.level:DEBUG}"</span><span class="token punctuation">)</span>
<span class="token keyword">private</span> <span class="token class-name">String</span> logLevel<span class="token punctuation">;</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述


</article>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值