多模块项目的Spring Cloud客户端配置

时间:2019-07-09 17:17:56

标签: java spring-cloud

尽管我已成功使用GIT作为后端属性存储库成功设置了Spring Cloud Config客户端/服务器。但是我对于以下客户端代码之一的模块结构(Maven)存在一个基本问题:

客户端1:

  common (maven module)
  app (maven module)
  web (Contains the spring boot application, bootstrap.properties, application.properties)

对于上述结构,我能够从Spring Cloud配置服务器中读取/刷新“ Web”模块的属性(因为这是我的SpringBootApplication所在的模块),但是无法理解如何注入configure /也可以在其他模块中插入属性,例如可能有通用模块或应用程序模块的属性。

我尝试在其他模块中添加bootstrap.properties,使它们指向相同的Spring Cloud配置服务器。但这没有解决。

Spring云配置服务器application.properties:

server.port = 8888

spring.cloud.config.server.git.uri =

management.security.enabled = false

Web模块的bootstrap.properties

spring.application.name = test

spring.cloud.config.uri = http://localhost:8888

management.security.enabled = false

spring.profiles.active =默认,产品

Maven依赖项(云配置客户端):

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>1.4.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
        <version>1.1.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.4.4.RELEASE</version>
    </dependency>

关于如何读取/刷新将在单个实例/客户端上部署的通用,应用或网络等多个模块的属性,请帮我理解

1 个答案:

答案 0 :(得分:0)

由于您的commonapp模块不是应用程序,因此它们不会启动,因此不会读取您的bootstrap.properties文件。

看看type-safe configuration propertiesthird party configuration

您的commonapp模块可以提供具有其属性的多个类。 在web模块的Java配置中,可以设置bootstrap.properties和/或application.properties文件中的值与配置类之间的绑定。 由于有了@ConfigurationProperties批注,Spring Boot将创建这些配置类的常规Bean。这样,您就可以像注入其他任何bean一样注入配置。

希望有帮助! :)