HashiCorp Consul和Spring Boot的分布式配置

时间:2016-01-17 01:40:42

标签: spring-boot consul spring-cloud-config

我想知道如何使用Spring Boot在HashiCorp Consul中分享一些属性,我在那里阅读了依赖性&spring-cloud-consul-config'但是我找不到如何从那里加载包含所有属性文件的文件夹。

使用Spring Cloud Config Server是可能的,例如:

spring:  
  profiles:
    active: native
  cloud:
    config:
      server:
        native: 
          searchLocations: file:C:/springbootapp/properties/

但是,如何在Spring Cloud Config Consul中执行此操作?

1 个答案:

答案 0 :(得分:2)

假设你有一个在标准端口上运行的consul,那么使用spring boot需要的配置不多。整个代码粘贴在下面(没有其他配置文件)。

对我来说,棘手的部分是弄清楚应该如何将键/值存储在领事中以便春季启动应用程序可见。文档中有一些信息,但我认为这有点误导。

要回答你的问题,我把这些值放在键" config / bootstrap / key1"在领事内部,使下面的例子工作。

以下是一个适合我的示例代码:

的pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>1.3.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-all</artifactId>
    <version>1.0.0.M5</version>
</dependency>

Application.java

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Application {

    @Autowired
    private Environment env;

    @RequestMapping("/")
    public String home() {
        return env.getProperty("key1");
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}