记录一次springcloud nacos config 配置中心的问题

根据查找的资料,bootstrap.yml,是springcloud下专用的,又好像说springboot默认不加载bootstrap.yml(或者bootstrap.properties),所以,

在springcloud下,需要加入下面的依赖

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

特意看了一下,这个依赖会引入

[INFO] +- org.springframework.cloud:spring-cloud-starter-bootstrap:jar:3.0.3:compile
[INFO] |  \- org.springframework.cloud:spring-cloud-starter:jar:3.0.3:compile
[INFO] |     \- org.springframework.security:spring-security-rsa:jar:1.0.10.RELEASE:compile
[INFO] |        \- org.bouncycastle:bcpkix-jdk15on:jar:1.68:compile
[INFO] |           \- org.bouncycastle:bcprov-jdk15on:jar:1.68:compile

 所以, 看了下 spring-cloud-starter-bootstrap:jar, spring-cloud-starter:jar 这两个JAR,里面并没有有用的东西,比如 spring.factories等这些东西,只有  spring-cloud-starter-bootstrap:jar这个里面,有一个org\springframework\cloud\bootstrap\marker\Marker.class,奶奶的,什么情况,一时搞不懂。查了又查,试了又试,一直觉得

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

这个引入的东东,到底有什么用???也没有看到class类文件呀??

最后,通过 org.springframework.cloud.bootstrap.BootstrapApplicationListener里看到,

	@Override
	public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
		ConfigurableEnvironment environment = event.getEnvironment();
		if (!bootstrapEnabled(environment) && !useLegacyProcessing(environment)) {
			return;
		}
	public static boolean bootstrapEnabled(Environment environment) {
		return environment.getProperty(BOOTSTRAP_ENABLED_PROPERTY, Boolean.class, false) || MARKER_CLASS_EXISTS;
	}

 所以,到这里,答案解开了。spring-cloud-starter-bootstrap:jar这个里面,有一个org\springframework\cloud\bootstrap\marker\Marker.class 这个类,只是一个标记的作用。

如果上下文里有它,那么就认为 bootstrapEnabled  开启了,从而bootstrap.xml yam起作用了。

我说明白了吗?

参考:Spring Cloud——Spring Cloud Alibaba 2021 Nacos Config bootstrap 配置文件失效解决方案_无限迭代中......-CSDN博客基本概念微服务是基于Spring Cloud框架搭建的,Spring Cloud Config作为服务配置中心。业务服务只配置服务名称、启用环境和config的URL地址,其他都配置在配置中心,例如服务端口、服务注册中心地址等。可在开发环境(dev)、测试环境(test)和生产环境(prod)分别配置。所以预想的启动流程是:先加载配置文件,再启动服务。添加配置文件:bootstrap.properties或者bootstrap.yml。环境配置Spring Boot 2.4.5Spring https://blog.csdn.net/weixin_43272781/article/details/116718747?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-9.no_search_link&spm=1001.2101.3001.4242

springclould配置了bootstrap文件不起作用_xizhangyan的博客-CSDN博客springclould 2.4版本之后 不再优先读取bootstrap文件,导致bootstrap不起作用。解决方案,只需要pom引入以下依赖即可 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> https://blog.csdn.net/xizhangyan/article/details/115181776 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值