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。

相关文章
|
10月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
805 2
|
11月前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
11月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
7516 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
1006 0
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
1797 0
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1540 3
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
713 0
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
546 0

热门文章

最新文章