我对spring cloud有一个问题:我在application.yml中对spring.cloud.config的设置在应用程序执行时没有使用。让我在这里提供更多的细节。我希望我的服务可以从远程ConfigServer获取设置。我将ConfigServer创建为一个带有注释@EnableConfigServer的spring boot应用程序。之后,我用下一个配置文件创建了客户端应用程序:
application:
name: mw
cloud:
config:
enabled: true
uri: http://172.17.42.1:8888
fail-fast: true
主类:
@EnableEurekaClient
@SpringBootApplication
public class MwApplication
和额外配置:
@Configuration
@EnableJpaRepositories(basePackages = {"com.sample.repository"})
@EnableTransactionManagement
@EnableScheduling
public class AppConfiguration
我还有下一个依赖项:
spring-cloud-starter-eureka
spring-cloud-config-client
spring-boot-configuration-processor
spring-boot-starter-data-jpa
当我执行客户端应用程序时,出现以下消息:ConfigServicePropertySourceLocator:无法定位PropertySource:获取请求“http://localhost:8888/mw/default”时出现i/O错误
应用程序尝试从默认uri(localhost)获取数据,而不是从我的设置中使用uri。我在调试模式下查看了app,看到org.springframework.cloud.config.client.configServiceBootstrapConfiguration正在创建带有默认属性的ConfigClientProperties,而我在application.yml中的设置没有被使用。
我做错了什么?多谢了。
您需要在application.yml文件中添加以下内容:
spring:
cloud:
config:
enabled: true
在每个注释链中,您还需要将属性添加到bootstrap.yml而不是application.yml。原因是前者在spring启动周期中先于后者加载。下面是用户Michael Isvy回答的另一个SO帖子,解释了原因,并将其复制如下,以飨读者:在spring boot将属性放在application.yml或bootstrap.yml上的区别是什么?
我刚刚问了spring cloud
的人,我想我应该在这里分享我的信息。
bootstrap.yml在application.yml之前加载。
它通常用于以下方面:
bootstrap.yml
Spring.application.name
和
Spring.Cloud.Config.Server.git.uri
html" target="_blank">加密/解密
信息技术上,bootstrap.yml
由父spring ApplicationContext加载。该父ApplicationContext在使用Application.yml的父ApplicationContext之前加载。
如何在中正确指定根日志级别? 如何在中正确指定logstash编码器?
代码activity_lastcall.xml: 代码lastcall.java: 代码AndroidManifest.xml: 我需要得到最后一个电话,并在TextView中写入号码和姓名。
我在docker-compose.yml中使用,但老实说,这似乎没有什么不同。不是在一篇文章中抛出一堆问题,但无论发生了什么,这是否也是我只能在使用Docker Compose运行web服务器时才能在浏览器中访问web服务器的原因?
当我试图运行测试时,我和詹金斯的情况很奇怪。 作业的配置明确指定在这个特定的avd上运行测试:“hudson_en-US_160_HVGA_android-18_armeabi-v7a”,但是由于一些奇怪的原因,在构建过程中,发现了2个设备。其中一个设备是前一个,但另一个被称为“未知sdk”。 测试在特定的avd上成功执行,并在"unnode-sdk"上失败: 日志的相关部分: [SR.runTe
我正在使用最新的JMeter 3.3运行最新的Selenium WebDriver测试,一切似乎都很好, 我只有1个线程配置了1秒的爬升和1个循环计数,但是在webdriver执行完成后,JMeter并没有停止整个测试执行,而是无限期地继续执行测试,我不确定为什么会发生这种情况,我正在使用chromedriver,我所做的所有配置都是按照JMeter文档进行的,我还添加了命令位于脚本末尾。请参考附
我希望在使用运行测试时,控制台尽可能安静,除非出现问题。再说一次,当我在Eclipse中编写测试时(换句话说,当我在Eclipse中运行单个junit测试时),它们可以非常详细。 因此,当我使用surefire运行所有测试时,我需要一种方法来拥有不同的log4j/logback设置,而不是在Eclipse中一个接一个地运行它们。有没有办法做到这一点?