我正在自学SpringCloudConfig服务器,在将属性注入bean时遇到了一些问题。
因此,我有一个简单的Spring Boot应用程序作为配置客户端,仅用于测试:
@SpringBootApplication
@ConfigurationProperties
public class DemoApplication {
@Value("${greeting}")
static private String greeting;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
System.out.println("The greeting is: " + greeting);
}
}
但系统会打印:
The greeting is: null
检查envendpoint时,我实际上发现"${greting}"
属性位于环境中:
profiles: [ ],
configService:https://github.com/mstine/config-repo.git/demo.yml: {
greeting: "Webhook"
},
configService:https://github.com/mstine/config-repo.git/application.yml: {
eureka.instance.hostname: "localhost",
eureka.instance.leaseRenewalIntervalInSeconds: 10,
eureka.instance.metadataMap.instanceId: "${vcap.application.instance_id:${spring.application.name}:${server.port:8080}}",
eureka.client.serviceUrl.defaultZone: "${vcap.services.service-registry.credentials.uri:http://127.0.0.1:8761}/eureka/",
foo: "barnyardAnimal"
},
请注意,在configService
中,有一个名为greeting
的属性,其值为“Webhook”
我是Spring框架的新手,所以我想知道我是不是搞砸了什么?有人建议我也可以使用Environment
访问外部属性,但我没有找到太多关于如何使用它的教程。有什么想法吗?
===============================================================================================================================================================添加配置服务器的代码:
应用爪哇:
package io.spring.cloud.samples.fortuneteller.configserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
应用yml:
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: https://github.com/mstine/config-repo.git
只是不能将属性作为静态字段注入。试着把它注入一些@Component
我认为您也需要创建和启动服务器,我没有看到代码
@SpringBootApplication
@EnableConfigServer
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
启用服务器后,客户端需要连接到服务器并请求服务器为其存储的配置参数。此服务器需要存储。要在其中存储值的yml。
客户端代码需要与服务器交谈,并使用bootstrap.yml询问特定的值
---
spring:
profiles:
active: northamerica
application:
name: koitoerclient
cloud:
config:
uri: http://localhost:8001
server:
port: 8002
您可以在github中找到配置和客户端和服务器代码的示例,非常简单,因此您可以理解整个配置。
我的Spring Boot应用程序与Spring云配置服务器连接以获取外部化属性,但突然没有与配置服务器连接/对话。我做了很多改变,不确定哪一个会导致这个问题。 > 我验证了我的Spring Boot应用程序中的bootstrap.yml文件,以下配置存在,并且Spring云配置服务器正在该位置运行 spring:application:name:abc cloud:config:uri:http
我有一个web应用程序,我想使用Spring Boot的服务器配置。这两个应用程序都位于本地主机上。我从头开始创建了前两个应用程序,它们一起工作,但当我使用具有许多依赖项(不仅仅是云配置和web依赖项)的客户端时,它就不再工作了。我怎么知道?我在服务器的属性文件中有一个变量,我试图在我的客户机中用@Value(“${atena}”)来使用它,错误出现在java中。lang.IllegalArgum
我这样配置Spring Cloud Config服务器: 由于某些原因,resolvePlaceholders不适用于JSON表示,因此服务器配置客户机需要知道服务器上配置的所有ENV变量。 是否可以强制JSON表示resolvePlaceholders与纯文本(属性)表示相同?
我正在使用Spring Cloud Config服务器,能够检测来自git存储库的更改并将其传递给配置客户机。 有两种方法,我已经实现了: null 所以两者都工作得很好,那么使用Spring Cloud Bus有什么好处吗?或者在生产环境中,不使用Spring Cloud Bus会有什么问题吗?因为将需要额外的工作来设置RabbitMQ集群(HA)作为生产中的Spring云总线。 谢谢,大卫
只是在试用春云流 当我把它作为一个独立的jar运行时(就像另一个springboot应用程序一样),它尊重这个应用程序。物业和所有工程按预期进行。 当我使用SCDF创建流时,它会忽略属性,并使用约定流名称创建交换。app_名称不是我想要的。 我希望在某个时候,我希望这些应用程序与SpringCloudConfig服务器集成,在那里我可以从不同的来源完全外部化配置。 有人可以建议我遗漏了什么,以便S
我希望将concur严格用作配置源。我正在使用spring cloud Consor配置来获取配置。我正在使用git2consul将文件加载到Consor并读取它们。根据spring云文档,我在构建中添加了以下内容。格拉德尔 并在我的application.properties 我面临的问题是,预期的属性没有加载到ConfigurationProperties bean中。在ConsultProp