Bootstrap.yml那点事 Spring Cloud 配置中心多环境配置

这篇具有很好参考价值的文章主要介绍了Bootstrap.yml那点事 Spring Cloud 配置中心多环境配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Bootstrap.yml的作用

加载顺序

若application.yml 和bootstrap.yml 在同一目录下:bootstrap.yml 先加载 application.yml后加载,bootstrap.yml 用于应用程序上下文的引导阶段。bootstrap.yml 由父Spring ApplicationContext加载。

配置区别

bootstrap是spring cloud的配置上下文加载。由spring-cloud-context包加载。引入依赖

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter</artifactId>
</dependency>

具体加载类

Bootstrap.yml那点事
Spring Cloud 配置中心多环境配置

关键代码

public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
		ConfigurableEnvironment environment = event.getEnvironment();
		if (!environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class,
				true)) {
			return;
		}
		// don't listen to events in a bootstrap context
		if (environment.getPropertySources().contains(BOOTSTRAP_PROPERTY_SOURCE_NAME)) {
			return;
		}
		ConfigurableApplicationContext context = null;
		String configName = environment
				.resolvePlaceholders("${spring.cloud.bootstrap.name:bootstrap}");
		for (ApplicationContextInitializer<?> initializer : event.getSpringApplication()
				.getInitializers()) {
			if (initializer instanceof ParentContextApplicationContextInitializer) {
				context = findBootstrapContext(
						(ParentContextApplicationContextInitializer) initializer,
						configName);
			}
		}
		if (context == null) {
			context = bootstrapServiceContext(environment, event.getSpringApplication(),
					configName);
		}
		apply(context, event.getSpringApplication(), environment);
	}

 application是spring boot的配置加载。引入依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Cloud 配置中心多环境配置

一:spring boot 多环境配置文件

我们知道spring boot可以通过文件名来区分配置,如下:
application-dev.yml #开发环境
application-test.yml #测试环境
application-prod.yml #正式环境

二:spring cloud多环境配置文件

但是spring cloud用上了配置中心,就一个boostrap.yml,且不支持文件名的方式来区分。spring cloud 配置中心bootstrap.yml区分环境的办法如下:

spring:
  profiles:
    active: dev
  application:
    name: user-server
feign:
  hystrix:
    enabled: true
##上面是基础配置,不用上配置中心那种
##下面是环境区分,主要不同环境不同文件获取
---
#开发环境
spring:
  profiles: dev
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: c97d4f46-deba-5588-b05f-c2a061ccc688
      config:
        server-addr: localhost:8848
        file-extension: yaml
        group: DEFAULT_GROUP
        namespace: c97d4f46-deba-5588-b05f-c2a061ccc688
---
#正式环境
spring:
  profiles: prod
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: aa3de4c8-61ad-5568-9887-ed731659edd4
      config:
        server-addr: localhost:8848
        file-extension: yaml
        group: DEFAULT_GROUP
        namespace: aa3de4c8-61ad-5568-9887-ed731659edd4
---
#测试环境
spring:
  profiles: test
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: 98adcdd5-f25c-7890-b8f3-97352adc83e8
      config:
        server-addr: localhost:8848
        file-extension: yaml
        group: DEFAULT_GROUP
        namespace: 98adcdd5-f25c-7890-b8f3-97352adc83e8

多个配置以 — 分开,然后通过spring.profiles=环境表示具体的环境配置.。

三:java启动方式

启动时可以指定我们的服务器上面的运行引用配置如:文章来源地址https://www.toymoban.com/news/detail-404942.html


java -jar -Dspring.profiles.active=test *****.jar

或者dockerfile启动方式
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=test","*****.jar"]

到了这里,关于Bootstrap.yml那点事 Spring Cloud 配置中心多环境配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信、支付宝支付那点事

    公司要在MUI开发的APP里添加上支付功能,然后爬坑开始了。。 因为公司用的是Java语言开发的服务端,所以就要找Java版本的支付代码了 首先在dcloud的问答里搜索看有没有相关文章,找到了下面两篇有用的 java生成支付宝快捷支付订单教程及源码 第一次调微信支付正常弹出支付

    2024年02月08日
    浏览(35)
  • Accesss数据库的那点事

            Access(全称为Microsoft Access)是一个关系型数据库管理系统(RDBMS)。它是由微软公司开发的数据库软件,用于创建、管理和操作数据库应用程序。         Access提供了一个 可视化的开发环境 ,用户可以使用它来设计和管理数据库,创建表、查询、表单、报表

    2024年02月07日
    浏览(37)
  • Cocos Creator 中的assembler那点事

    一:Assembler的来龙去脉 二:自定义一个渲染组件(使用自定义的assembler挂载) 之前的文章中提到和使用过assembler相关的技术,但是现在看来还是理解的不是很到位, 1: 首先看看那assembler是如何绑定到渲染组件的,随便找到一个渲染组件,比如说老生常谈的Sprite组件   cocos2d

    2024年02月08日
    浏览(44)
  • C语言之预处理那点事

    在C语言中,曾出现各种各样新的标准,有的昙花一现,有的则源远流传。我们这篇来看流传下来的,简化开发者编程和提升性能的一种精粹“预处理”。 2.构建我们的main函数 在ANSI C的任何一种实现中,存在两个不同的环境。 第一种是翻译环境,在这个环境中源代码被转换为

    2024年02月08日
    浏览(93)
  • less预处理语言的运用之-变量拼接那点事

    less语法的技巧总结,很基础,熟练掌握后能提高我们在大型项目中的开发效率 递归 less连接符与import 关注我的个人公众号,获取更多前后端开发经验知识

    2024年02月16日
    浏览(62)
  • 关于聚合根,领域事件的那点事---深入浅出理解DDD

    作者:京东物流 赵勇萍 最近有空会跟同事讨论DDD架构的实践落地的情况,但真实情况是,实际中对于领域驱动设计中的实体,值对象,聚合根,领域事件这些战术类的实践落地,每个人理解依然因人而异,大概率是因为这些概念还是有一些抽象,同时有有别于传统的MVC架构

    2023年04月27日
    浏览(32)
  • 开发那点事(十六)从零开始搭建一个NFT数字藏品平台

    写在前面的话 从6月初到七月研究了将近一个月NFT 区块链这方面的东西,从啥都不会到了解原理,总算是有点成果了,在这里分享给大家。 核心大纲 百度超级链开放网络(Solidity语言) 集成openzeppelin中的ERC721合约快速完成合约开发 Springboot 作为后台开发语言调用线上合约 通

    2024年01月16日
    浏览(41)
  • Spring Cloud集成Nacos实现服务配置中心 | Spring Cloud 7

    先我们来看一下,微服务架构下关于配置文件的一些问题: 配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,不好统一配置和管理。 配置文件无法区分环境,开发环境、测试环境、线上环境。微服务项目可能会

    2024年02月14日
    浏览(33)
  • Spring Cloud 使用 k8s 作为注册中心 开发环境 和 生产环境

    因为 k8s 本身就有拥有注册中心,和配置中心的功能。如果还是用 Nacos、Eureka、Consul 之类的注册中心组件,就有点冗余了。当然这些组件还是可以继续用的。 所以,本教程,教授 Spring Cloud 使用 k8s 的注册中心。在开发环境和生产环境 的教程! 下面以一个最简单的 服务消费

    2024年02月15日
    浏览(38)
  • 【配置nacos】使用application.yml配置文件来配置spring-cloud-starter-alibaba-nacos-config

    1.首先修改pom.xml文件,引入spring-cloud-starter-alibaba-nacos-config依赖 2.在应用的 /src/main/resources/application.yml 配置文件中配置 Nacos Config 元数据 这里注意一下, 官方文档上面给的使用bootstrap.properties 来进行配置的, 我是使用的application.yml 来进行配置的。 【出现的问题以及解决】

    2024年01月24日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包