spring boot 2.6.x接入spring cloud alibaba 2021.x版本nacos

简介: spring cloud alibaba 2021.x版本nacos配置中心对接spring boot 2.6版本。

我的 spring boot 2.6.x版本与spring cloud alibaba 2021.x版本的nacos对接的过程。

首先pom加入引用(这里同时加入了注册中心和配置中心):

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


项目启动类上添加 @EnableDiscoveryClient注解:

@SpringBootApplication@Slf4j@EnableDiscoveryClient@RefreshScopepublicclassStructureApplication {
publicstaticvoidmain(String[] args) {
SpringApplication.run(StructureApplication.class, args);
log.info("StructureApplication started successfully");
    }
}


添加application.yml文件:

server:  port: 8081  servlet:    context-path: /sp-structure
spring:  application:    name: sp-structure-application
  profiles:    active: dev

在application.yml中指定了激活dev环境配置。因此项目中添加application-dev.yml:


spring:  cloud:    nacos:      config:        group: DEFAULT_GROUP
        server-addr: localhost:8848        namespace: c2897240-442e-4e0e-be5a-eef34d65341d
  config:    import:      - optional:nacos:sp-structure-application-dev.yml

上述配置中的group和namespace是nacos中配置的group和namespace。登录nacos,在group DEFAULT_GROUP和namespace c2897240-442e-4e0e-be5a-eef34d65341d中添加一个名为sp-structure-application-dev.yml的配置文件


微信截图_20221118191817.png

配置文件中配置了注册中心、数据库等配置:

spring:  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/simple?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    druid:# 初始化时建立物理连接的个数      initialSize: 5# 最小连接池数量      minIdle: 5# 最大连接池数量      maxActive: 201# 获取连接时最大等待时间,单位毫秒      maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒      timeBetweenEvictionRunsMillis: 60000# 连接保持空闲而不被驱逐的最小时间      minEvictableIdleTimeMillis: 300000# 用来测试连接是否可用的SQL语句,默认值每种数据库都不相同,这是mysql      validationQuery: select 1
# 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。      testWhileIdle: true  cloud:    nacos:      discovery:        server-addr: localhost:8848        group: DEFAULT_GROUP
        namespace: c2897240-442e-4e0e-be5a-eef34d65341d


启动项目,成功注册到nacos注册中心,成功拉取到配置。


下面再尝试一个场景:假如一个项目有很多配置信息,如果放在一个yml文件中可能比较庞大。也许可以将配置分类放在多个yml中进行管理。下面尝试在这个项目中添加一个自定义的string配置。

首先增加一点Controller代码:

@RestController@RefreshScopepublicclassSimController {
@Value("${conf.nac.str.examp:}")
privateStringnacosExamp;
@PostMapping("/strConf")
@SentinelResource(value="/strConf")
publicStringgetStrConfig() {
returnnacosExamp;
    }
}


计划将conf.nac.str.examp这个配置独立另放一个配置文件。

所以,修改application-dev.yml的配置,增加一个配置文件:

spring:  cloud:    nacos:      config:        group: DEFAULT_GROUP
        server-addr: localhost:8848        namespace: c2897240-442e-4e0e-be5a-eef34d65341d
  config:    import:      - optional:nacos:sp-structure-application-dev.yml
      - optional:nacos:${spring.application.name}-tyy-${spring.profiles.active}.yml

上面新的配置文件的名称换了一种写法。使用${}占位符替代名称。系统会使用环境变量替代,最终就是sp-structure-application-tyy-dev.yml

修改以上配置后,重启服务。

之后在nacos中添加一个新的名为sp-structure-application-tyy-dev.yml的配置文件(注意group和namespace),里面添加一个配置:

conf:  nac:    str:      examp: hello world

nacos发布后,访问controller的接口,可以正确返回 hello world。

相关文章
|
4月前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
3654 75
|
4月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
5798 79
|
5月前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
4月前
|
人工智能 监控 Java
Spring AI Alibaba实践|后台定时Agent
基于Spring AI Alibaba框架,可构建自主运行的AI Agent,突破传统Chat模式限制,支持定时任务、事件响应与人工协同,实现数据采集、分析到决策的自动化闭环,提升企业智能化效率。
Spring AI Alibaba实践|后台定时Agent
|
10月前
|
存储 Kubernetes 安全
Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置
无论是使用 Nacos-Controller 实现配置的双向同步,还是直接在应用中接入 Nacos SDK 以获得更高级的配置管理特性,都能显著提升配置管理的灵活性、安全性和可维护性。使用 Nacos,您能够更好地管理和优化您的应用配置,从而提高系统的稳定性和可靠性。
856 49
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
2174 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
1492 139
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
1171 206
|
10月前
|
存储 人工智能 测试技术
Nacos托管LangChain应用Prompts和配置,助力你的AI助手快速进化
AI 应用开发中,总有一些让人头疼的问题:敏感信息(比如 API-KEY)怎么安全存储?模型参数需要频繁调整怎么办?Prompt 模板改来改去,每次都得重启服务,太麻烦了!别急,今天我们就来聊聊如何用 Nacos 解决这些问题。
|
12月前
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
4650 14