全局变量和应用程序变量在Spring启动项目中定义

时间:2018-03-26 11:33:22

标签: java spring spring-boot microservices configuration-files

我正在尝试使用弹簧和弹簧靴来开发微服务。在我的项目中,我正在将单片转换为面向服务的架构。项目包含20个微服务。我需要设置应用程序变量和全局变量。我有与此相关的混淆,我在这里添加了这些混淆,

  1. 可以在application.properties文件中声明我的全局变量吗?如果不可能我可以定义我的全局变量?
  2. 如果我使用spring配置服务器进行全局配置,如何将这些属性有条件地导入客户端项目?
  3. 我可以在配置服务器中为不同的配置文件设置不同的属性文件,并有条件地导入到不同配置文件的客户端项目中吗?在这里,每个配置文件代表我的不同区域。

1 个答案:

答案 0 :(得分:1)

After My Exploration我找到解决此问题的方法来加载全局变量和应用程序变量,包括数据库配置。我们可以使用的最佳方式是 - spring cloud config server externalized configuration。

我们可以为spring cloud配置服务器创建一个微服务。在配置服务器中,我们可以通过两种方式创建变量和配置。

  1. GIT Link参考配置
  2. 使用本地文件系统/环境变量。
  3. 链接参考

    1. https://cloud.spring.io/spring-cloud-config/single/spring-cloud-config.html
    2. https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.3.RELEASE/multi/multi__spring_cloud_config_server.html
    3. https://github.com/spring-cloud/spring-cloud-config
    4. 我在这里使用了本地文件系统。

      需要在src / main / resources下创建Config文件夹。并按照命名约定创建不同的配置文件,

      db,properties,db-test.properties,db-prod.properties,db-dev.properties。 我为不同的开发环境创建了例子。就像我们可以为变量和配置创建任何配置文件一样。

      并在application.properties for config server

      中添加以下内容
      server.port=8888
      spring.profiles.active=native
      

      在配置服务器的pom.xml文件中添加配置服务器依赖项,

      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-config-server</artifactId>
      </dependency>
      

      将以下内容添加到主应用程序运行类

      @SpringBootApplication
      @EnableConfigServer
      public class ConfigServerApplication {
      
          public static void main(String[] args) {
          SpringApplication.run(ConfigServerApplication.class, args);
          }
      }
      

      还可以通过添加pom.xml依赖项

      来创建客户端微服务项目
      <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-config</artifactId>
      </dependency>
      

      在application.properties文件中添加以下行,以设置客户端从服务器接收配置,

      server.port=8080
      spring.application.name=db
      spring.cloud.config.uri=localhost:8888
      

      最后通过指定配置文件

      来运行您的客户端项目
      java -jar -Dsping.profiles.active=<profile> <jar_name>.jar
      

      提前致谢