Springboot整合nacos实现配置中心及服务发现

一、概述

首先,nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。而springboot能够创建一个独立运行spring应用框架,因此,springboot整合nacos,可以更方便实现服务的发现、配置管理等相关功能。

二、springboot是如何整合nacos?

1.在pom文件中添加nacos依赖。

csharp 复制代码
<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2021.0.5.0</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
			<version>2021.0.5.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-bootstrap</artifactId>
			<version>3.1.3</version>
		</dependency>

注:这里用的spring版本是2.6.0。

2.配置nacos。

在bootstrap.properties或bootstrap.yml文件中配置nacos的相关信息。这里以bootstrap.yml为例。

csharp 复制代码
spring:
  application:
    name: my-blog#为服务名
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        namespace: e50bbc31-d4bd-4f7f-852a-c5cacf3a2a24
        server-addr: localhost:8848
        register-enabled: true
        watch:
          enabled: true
      config:
        extension-configs:
          - data-id: common.properties
            refresh: true
        file-extension: properties #后缀名,只支持 properties 和 yaml 类型
        prefix: my-blog #文件名,如果没有配置则默认为 ${spring.appliction.name}
        namespace: e50bbc31-d4bd-4f7f-852a-c5cacf3a2a24
        auto-refresh: true
        enable-remote-sync-config: true #启用远程同步配置
        group: DEFAULT_GROUP  #配置组
        refresh-enabled: true
        server-addr: localhost:8848

3.使用nacos配置。

我们可以在SpringBoot应用中,通过@Value注解或在application.yml中,你可以通过占位符${...}来引用nacos中的配置。

csharp 复制代码
@Component  
@ConfigurationProperties(prefix = "blog")  
public class MyConfigProperties {  
    private String property;  
}
csharp 复制代码
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@Component
@Data
@RefreshScope
public class MyConfig {
    /**
     * url地址
     */
    @Value("${blog.url}")
    private String url;
    /**
     * 路径
     */
    @Value("${blog.path}")
    private String path;
}

其中 @RefreshScope注解实现配置动态刷新。

4.启动nacos服务发现。

csharp 复制代码
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication  
@EnableDiscoveryClient  
public class MyApplication {  
    public static void main(String[] args) {  
        SpringApplication.run(MyApplication.class, args);  
    }  
}

接着启动应用后,就可以在nacos的服务列表中看到我们已经注册到nacos的服务。

相关推荐
失散133 小时前
分布式专题——10.4 ShardingSphere-Proxy服务端分库分表
java·分布式·架构·shardingsphere·分库分表
Bellafu6664 小时前
spring项目部署后为什么会生成 logback-spring.xml文件
java
递归不收敛4 小时前
一、Java 基础入门:从 0 到 1 认识 Java(详细笔记)
java·开发语言·笔记
沐浴露z5 小时前
【Java SpringAI智能体开发学习 | 2】SpringAI 实用特性:自定义Advisor,结构化输出,对话记忆持久化,prompt模板,多模态
java·spring·springai
小沈同学呀5 小时前
创建一个Spring Boot Starter风格的Basic认证SDK
java·spring boot·后端
码农小伙5 小时前
通俗易懂地讲解JAVA的BIO、NIO、AIO
java·nio
不要再敲了6 小时前
JDBC从入门到面试:全面掌握Java数据库连接技术
java·数据库·面试
潇I洒7 小时前
若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法
java·tomcat·ruoyi·若依·404
凤山老林7 小时前
SpringBoot 轻量级一站式日志可视化与JVM监控
jvm·spring boot·后端
Funcy7 小时前
XxlJob 源码分析05:执行器注册流程
java