当前位置: 首页 > 知识库问答 >
问题:

如何制作spring boot客户端的应用程序。yml从配置服务器获取值

洪星文
2023-03-14

还有什么方法可以让spring cloud配置客户端的应用程序。yml从spring配置服务器读取值?例如,在我的spring cloud config客户端上,应用程序。yml就是这样

spring:
  application:
  name: clienttest
mvc:
view:
  prefix: /jsp/
  suffix: .jsp


server: 
  port: 8080
  context-path: /clienttest
  tomcat:
   uri-encoding: UTF-8

eureka:
 client:
   service-url: {"defaultZone":"http://dev.euraka01.app.com:8769/eureka/,http://dev.euraka02.app.com:8770/eureka/"}
instance:
 prefer-ip-address: true

还有我的引导程序。yml文件如下所示

spring:
  application:
    name: clienttest
  cloud:
    config:
      name: clienttest
      uri: http://192.168.2.101:9000
      enabled: true
      profile: out_test
      label: master

对于服务url值,对于不同的环境,我必须配置不同的eureka url值,我的问题是,我是否可以在配置服务器中配置服务url值?就像我在应用程序中将值设置为${service url}。当我启动配置客户端服务器时,它会根据我在引导中设置的配置文件和标签从配置服务器获取值。yml。

共有2个答案

薛修能
2023-03-14

埃塞克斯男孩,非常感谢你的帮助,我能够从不同的配置文件读取值之前。我的问题是如何让application.yml从配置服务器获取值,现在我已经自己解决了,答案很容易,在应用程序中,设置像${service-url}这样的值,完整的答案如下:

在我的申请中。yml,内容如下:

spring:
  application:
  name: clienttest

server: 
  port: 8080
  context-path: /clienttest
  tomcat:
   uri-encoding: UTF-8

eureka:
 client:
   service-url:     {"defaultZone":"${service-url}"}
instance:
 prefer-ip-address: true

请注意服务url值,现在该值被设置为{“defaultZone”:“${service url}”},并且在我的应用程序中。属性文件,在配置服务器上,属性文件内容如下:

service-url=http://192.168.2.101:8769/eureka/,http://192.168.2.101:8770/eureka/

然后当我启动mocroservice时,它可以在http://192.168.2.101:8769/eureka/和http://192.168.2.101:8770/eureka/

这就是我想要的结果。

郑嘉年
2023-03-14

您可以通过profile和label在配置服务器上查找属性,其中label可以是branch或tag。

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

在上面的示例中,配置服务器将尝试查找名为

clienttest-out_test.properties

在主分行的git回购协议中。

spring:
  application:
    name: clienttest
  cloud:
    config:
      profile: out_test
      label: master

请看下面的示例和一个好的文档

 类似资料:
  • 问题内容: 我正在尝试以客户端/服务器方式制作Java应用程序。客户端是SWT中的GUI,它显示来自服务器的数据。服务器已连接到数据库。 好的,对此感到抱歉,我确定这是一个经典问题,但我不知道如何开始。 在我为他们工作的一个项目中,他们实施了很多魔术来透明地调用Glassfish服务器。 我不想使用Glassfish服务器。我只想要简单的Java语言。但是代理的概念似乎很酷。 你有这种想法或例子吗

  • 我有一个web应用程序,我想使用Spring Boot的服务器配置。这两个应用程序都位于本地主机上。我从头开始创建了前两个应用程序,它们一起工作,但当我使用具有许多依赖项(不仅仅是云配置和web依赖项)的客户端时,它就不再工作了。我怎么知道?我在服务器的属性文件中有一个变量,我试图在我的客户机中用@Value(“${atena}”)来使用它,错误出现在java中。lang.IllegalArgum

  • 当我运行Spring Cloud Config Client项目config-client时,我发现了以下错误: 启动ApplicationContext时出错。若要显示自动配置报告,请在启用“debug”的情况下重新运行应用程序。2018-02-09 10:31:10.923错误13933--[main]O.S.Boot.SpringApplication:应用程序启动失败 显然,配置服务器是错

  • 在调用writeAndFlush()之后,我不知道如何从服务器检索响应;我该怎么办? 我也使用Netty 4.0.18.final

  • 我是Spring Cloud的新手,我正在尝试使用存储在github上的属性文件连接服务器和客户端。 我的服务器应用程序。yml文件的配置如下: github回购协议链接在这里,主要属性和替代属性 我的客户端应用程序具有以下设置 Rest控制器是: 所有${变量}van都可以在位于git存储库中的属性文件中找到。 服务器运行正常,但是客户端给了我以下错误 创建名为“rateController”的

  • 我使用SpringBootAdmin来监视我的springboot应用程序,它非常好。但我需要先启动SpringBoot管理服务器,然后启动包含SpringBoot客户端的应用程序。 有没有办法将Spring Boot服务器包含到我的Spring Boot应用程序中,使它们看起来像一个应用程序,这样我就可以启动我的应用程序,然后服务器启动,客户端注册到服务器。最终目的是我的应用程序在端口8080上