读取nacos配置文件 bootstrap.properties
百度了很多解决方法都无效:
- 什么springboot与cloud的依赖冲突 springcloud与springboot的兼容版本链接(建议用火狐打开,都是json数据)
- 什么oss.yml的配置写法有新老版本写法之分
- 我一点一点的去改依赖,重写配置文件就是无效,在application.yml写有效,在nacos中写就无效
报错信息:
Caused by: java.lang.IllegalArgumentException: Oss endpoint can't be empty.
at org.springframework.util.Assert.isTrue(Assert.java:121) ~[spring-core-5.3.23.jar:5.3.23]
at com.alibaba.alicloud.context.oss.OssContextAutoConfiguration.ossClient(OssContextAutoConfiguration.java:54) ~[spring-cloud-alicloud-context-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at com.alibaba.alicloud.context.oss.OssContextAutoConfiguration$$EnhancerBySpringCGLIB$$eb8ab2fe.CGLIB$ossClient$0(<generated>) ~[spring-cloud-alicloud-context-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at com.alibaba.alicloud.context.oss.OssContextAutoConfiguration$$EnhancerBySpringCGLIB$$eb8ab2fe$$FastClassBySpringCGLIB$$def7371d.invoke(<generated>) ~[spring-cloud-alicloud-context-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.3.23.jar:5.3.23]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.3.23.jar:5.3.23]
at com.alibaba.alicloud.context.oss.OssContextAutoConfiguration$$EnhancerBySpringCGLIB$$eb8ab2fe.ossClient(<generated>) ~[spring-cloud-alicloud-context-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_241]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_241]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_241]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_241]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.23.jar:5.3.23]
... 20 common frames omitted
解决方法
突然灵光一现,去读取 bootstrap.properties的内容,(要先注释掉:spring-cloud-starter-alicloud-oss)
发现读取不到:Could not resolve placeholder ‘zyd.order’ in value “${zyd.order}”
就明白了是idea没有去读取bootstrap.properties
springboot 2.4.x之后的版本不在读取bootstrap.properties,要读取bootstrap.properties要引入一个依赖spring-cloud-starter-bootstrap
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.4</version>
</dependency>
问题解决,搞了一个下午我去