Springboot深入讲解nocos的整合与使用

目录
  • 前言
  • 1,  创建工程
  • 2,启动nacos-server服务
  • 3,编写controller进行动态配置生效
  • 4,添加配置文件boostrap.yaml
  • 5,nacos配置

前言

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施

1,  创建工程

先创建maven工程,父工程pom如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>configDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

2,启动nacos-server服务

访问的url是:http://localhost:8848/nacos/ 默认端口是8848,账号密码是:nacos/nocos

3,编写controller进行动态配置生效

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author yhq
 * @version 1.0
 * @date 2022/7/15 19:07
 */
@RestController
@RefreshScope  //@RefreshScope:需要配置这个才能动态更新配置。
public class TestController {
    @Value("${name}")
    private String name;
    @GetMapping("/getName")
    public String test(){
        return name;
    }
}

4,添加配置文件boostrap.yaml

springboot默认加载配置文件顺序:

bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml 其中bootstrap.properties 配置为最高优先级先加载的会被后加载的覆盖掉,所以.properties和.yml同时存在时,.properties会失效,.yml会起作用。”

#端口
server:
  port: 8888
#配置项目名称
spring:
  application:
    #configdemo默认是nacos的DateId名称
    name: configdemo
  #指定test的配置文件
  profiles:
    active: test
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        #加载yaml的nacos文件
        file-extension: yaml

可以看到启动时进行加载了文件如下:

5,nacos配置

配置了configdemo和configdemo-test.yaml

注意的是:它的加载规则是:# 1.DataId

- 用来读取远程配置中心的中具体配置文件其完整格式如下:

- ${prefix}-${spring.profile.active}.${file-extension}

a. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

b. spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

c. file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

如果configdemo和configdemo-test.yaml 都存在name的配置,优先configdemo-test.yaml

访问结果如下:

以上是针对同个服务不同环境配置应用情况。

到此这篇关于Springboot深入讲解nocos的整合与使用的文章就介绍到这了,更多相关Springboot nocos内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java之SpringCloud nocos注册中心讲解

    一.nacos是什么? Nacos是用来发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助快速实现动态服务发现.服务配置.服务元数据及流量管理. 二.使用步骤 1.安装nacos 服务器 直接运行 startup.cmd 访问 localhost:8848/nacos 初始密码 nacos nacos 2.导入依赖和配置yaml 父项目依赖pom文件 <?xml version="1.0" encoding="UTF-8"?> <p

  • Springboot深入讲解nocos的整合与使用

    目录 前言 1,  创建工程 2,启动nacos-server服务 3,编写controller进行动态配置生效 4,添加配置文件boostrap.yaml 5,nacos配置 前言 Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos 帮助您更敏捷和容易地构建.交付和管理微服务平台. Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式.云原生范式) 的服务基础设施 1, 

  • SpringBoot详细讲解视图整合引擎thymeleaf

    目录 1. 支持的视图技术 2. Thymeleaf 2.1 Thymeleaf语法 2.2 标准表达式 1. 变量表达式 ${…} 2. 选择变量表达式 *{…} 3. 消息表达式 #{…} 4. 链接表达式 @{…} 5. 片段表达式 ~{…} 3. 基本使用 3.1 Thymeleaf模板基本配置 3.2 静态资源的访问 3.3 完成数据的页面展示 1. 创建Spring Boot项目 2. 编写配置文件 3. 创建web控制类 4. 创建模板页面并引入静态资源文件 5.效果测试 1. 支

  • SpringBoot从0到1整合银联无跳转支付功能附源码

    前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容. 提示:以下是本篇文章正文内容,下面案例可供参考 一.官网 https://open.unionpay.com/tjweb/user/mchTest/param 个人登录后的相关参数查看 其实在接入支付之前建议大家了解下 对称加密,分对称加密RSA之类,摘要算法,https,证书等这些知识点,因为此代码后面的验签,判断都是基于此的

  • Springboot详细讲解RocketMQ实现顺序消息的发送与消费流程

    目录 一.创建Springboot项目添加rockermq依赖 二.配置rocketmq 三.新建一个controller来做消息发送 四.创建消费端监听消息消费消息 五.启动服务测试顺序消息发送与消费 如何实现顺序消息? 需要程序保证发送和消费的是同一个 Queue rocketmq默认发送的消息是进入多个消息队列,然后消费端多线程并发消费,所以默认情况,不是順序消费消息的:有時候,我们需要顺序消费一批消息,比如电商系统 订单创建.支付.完成操作,需要順序执行: RocketMQTemplat

  • SpringBoot图文并茂讲解依赖管理的特性

    目录 1.父依赖parent介绍 2.修改默认版本号 3.starter场景启动器 1.父依赖parent介绍 pom文件中含有父依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </pa

  • springboot与redis的简单整合实例

    前言 Redis是一个缓存.消息代理和功能丰富的键值存储.StringBoot提供了基本的自动配置.本文记录一下springboot与redis的简单整合实例 官方文档:https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/ 前期准备 首先我们要有一个Redis服务,由于我没有Linux环境,为了方便搭建项目,直接在Windows下安装,参考这篇博客:Windows下安装Redis服务 安装步骤:一直

  • Springboot几种任务的整合方法

    这篇文章主要介绍了Springboot几种任务的整合方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一 异步任务 启动类 @MapperScan("com.topcheer.*.*.dao") @SpringBootApplication @EnableCaching @EnableRabbit @EnableAsync public class Oss6Application { public static void main(

  • springBoot 与neo4j的简单整合示例

    Neo4j简介 Neo4j是基于java语言实现的世界领先的图形数据库, 是一个高性能的图形存储,具有成熟和强大的数据库所需的所有功能,如友好的查询语言(Cypher)和ACID事务.对于许多应用程序,与关系数据库相比,Neo4j提供了数量级的性能优势.主要应用于图检索和关系计算.其优点在于: 节点没上线(3.0以后去掉了限制) 扩展性很好,支持集群和企业版 数据ETL有丰富的工具支持,自带GUI 良好的WebUI 更加详细的介绍参考:https://neo4j.com/docs/getting

  • Springboot项目与vue项目整合打包的实现方式

    我的环境 * JDK 1.8  * maven 3.6.0  * node环境 1.为什么需要前后端项目开发时分离,部署时合并? 在一些公司,部署实施人员的技术无法和互联网公司的运维团队相比,由于各种不定的环境也无法做到自动构建,容器化部署等.因此在这种情况下尽量减少部署时的服务软件需求,打出的包数量也尽量少.针对这种情况这里采用的在开发中做到前后端独立开发,打包时在后端springboot打包发布时将前端的构建输出一起打入,最后只需部署springboot的项目即可,无需再安装nginx服务器

  • SpringBoot项目开发常用技术整合

    目录 1 创建一个springboot demo 1.1 创建Restful接口 2 接口返回通用JSON对象 2.1 构建通用返回对象JSONResult 2.2 使用Jackson 3 SpringBoot开发环境热部署 4 资源文件属性配置 4.1 资源文件中的属性配置与映射到实体类 4.2 Server和Tomcat配置(详细配置参考Gitee) 5 SpringBoot整合模板引擎 5.1 集成freemarker 5.2 集成thymeleaf 5.2.1 集成i18n属性配置 6

随机推荐