当前位置: 首页 > news >正文

spring boot接入nacos 配置中心

再接入nacos配置中心时,需要确认几点:

1. spring boot 版本 (spring boot 2.x )

2. nacos 配置中心 服务端 版本 (1.1.4)

3. nacos client 客户端版本 (1.1.4)

方式一

1. 启动 nacos 服务端,这里不做解释

在配置中心中加入几个配置

2. 在自己的应用里引入 依赖包

<dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-config-spring-boot-starter</artifactId><version>0.2.8</version></dependency>

注意, nacos-config-spring-boot-starter 的版本内 引入了 nacos-client,需要注意引入的版本 是否与nacos服务端匹配。如果不匹配,可能会有问题。

这里使用的 nacos 服务端 是 1.x版本,所有引入的包也是1.x的才可以。

3. 配置 nacos 服务端地址

nacos.config.server-addr= localhost:8848 

4.  在spring boot 启动类 加入 注解

如果是 只有一个 dataId,使用 @NacosPropertySource

如果有 多个 dataId,使用 @NacosPropertySources

@SpringBootApplication
@NacosPropertySources({@NacosPropertySource(dataId = "springboot-nacos-hello", autoRefreshed = true,type = ConfigType.PROPERTIES),@NacosPropertySource(dataId = "useLocalCache", autoRefreshed = true,type = ConfigType.PROPERTIES)
})
public class NacostestApplication {public static void main(String[] args) {SpringApplication.run(NacostestApplication.class, args);}}

5. 读取 配置

使用 注解 @NacosValue

    @NacosValue(value = "${hi}", autoRefreshed = true)private String useLocalCache;

方式二:

引入依赖

        <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>1.1.4</version></dependency>

直接调用api

@Component
public class ConfigS {@Beanpublic ConfigService configService() {try {Properties properties = new Properties();properties.setProperty("serverAddr", "localhost:8848");ConfigService configService = NacosFactory.createConfigService(properties);configService.addListener("springboot-nacos-hello", "DEFAULT_GROUP", new Listener() {@Overridepublic Executor getExecutor() {return null;}@Overridepublic void receiveConfigInfo(String configInfo) {// 配置更新处理逻辑System.out.printf(configInfo);}});return configService;} catch (Exception e) {return null;}}
}
configService.getConfig("springboot-nacos-hello","DEFAULT_GROUP",10000)

这种方式 只是简单的拉去配置中心的内容,需要自己解析 配置内容和监听更新

方案三

引入依赖包

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.1.RELEASE</version><exclusions><exclusion><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>1.1.4</version></dependency>

 在 bootstrap.properties 文件中配置属性:

#服务地址
spring.cloud.nacos.config.server-addr= localhost:8848#共享配置
spring.cloud.nacos.config.shared-dataids=a.properties,b.properties
spring.cloud.nacos.config.refreshable-dataids=a.properties#扩展配置
spring.cloud.nacos.config.ext-config.0.data-id=useLocalCache.properties
spring.cloud.nacos.config.ext-config.0.refresh=true
spring.cloud.nacos.config.ext-config.1.data-id=useLocalCache2.properties#当前应用
spring.cloud.nacos.config.prefix=app
spring.cloud.nacos.config.file-extension= properties

读取配置: 使用@Value 注解

@Value(value = "${hi}")
private String useLocalCache;

 

nacos配置中心添加配置

 

共有三种配置:

1. 加载共享配置

sharedDataids 注意: 需要有后缀

refreshableDataids

分隔符 "[,]"

2. 加载扩展配置

extConfig 数组结构

dataId 必须有后缀

3. 加载应用级别的配置

读取 prefix /name/spring.application.name 属性

作为dataId

1. 直接加载 dataId

2. 加载 dataId.fileExtension

3. 加载 dataId - profile . fileExtension

覆盖

相关文章:

  • C语言数据存储大小端问题
  • 解决跨域问题,过滤器Filter,Servlet容器最重要的技术之一(基于SpringBoot开发过滤器)
  • ESP32 IDF ADF 加入音频
  • 【机器学习】基于稀疏识别方法的洛伦兹混沌系统预测
  • 机器学习python实践——关于ward聚类分层算法的一些个人心得
  • 【ElasticSearch】ElasticSearch基本概念
  • 大前端技术分类
  • 计算机网络:网络层 - 路由选择协议
  • Python基础用法 之 转义字符
  • 山东大学软件学院创新项目实训开发日志——收尾篇
  • 网工内推 | H3C工程师,大专可投,无责底薪加提成
  • Java面试八股之什么是mybatis流式查询
  • 不想搭集群,直接用spark
  • 代码随想录-Day36
  • 【SPIE独立出版 | 往届均已完成EI检索】2024云计算、性能计算与深度学习国际学术会议(CCPCDL 2024)
  • 2017年终总结、随想
  • avalon2.2的VM生成过程
  • CSS居中完全指南——构建CSS居中决策树
  • es的写入过程
  • IndexedDB
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • uva 10370 Above Average
  • XML已死 ?
  • 给Prometheus造假数据的方法
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 使用docker-compose进行多节点部署
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #Lua:Lua调用C++生成的DLL库
  • (1)(1.13) SiK无线电高级配置(六)
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (独孤九剑)--文件系统
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (力扣题库)跳跃游戏II(c++)
  • (正则)提取页面里的img标签
  • (转) RFS+AutoItLibrary测试web对话框
  • .jks文件(JAVA KeyStore)
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET CORE Aws S3 使用
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • @Autowired和@Resource装配
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [ IDE ] SEGGER Embedded Studio for RISC-V
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [C#]winform部署yolov5-onnx模型
  • [DL]深度学习_Feature Pyramid Network