Spring Boot + Gradle - 在哪里放置环境配置?

时间:2017-05-30 21:20:33

标签: java spring gradle spring-boot build.gradle

我正在使用Spring Boot中的一个简单应用程序。它是在本地开发的(并且有效):

  • 摇篮,
  • H2数据库,其中连接属性设置在application.properties放置在项目的根目录
  • Maven文件夹结构(src/main/groovysrc/main/resources等)

现在是我想将它部署到Openshift的时候,所以我需要创建一个带有MySQL设置的附加生产配置,但我不知道在哪里放置它以及如何使用它。

所以我的问题是:

  1. 我应该怎样做才能有两种不同的配置(developmentproduction)?
  2. 在何处放置配置文件?
  3. 我是否需要更改build.gradle
  4. 中的内容
  5. 如何使用开发或生产配置构建应用程序?
  6. 如何使用开发或生产配置运行应用程序?
  7. 创建多个环境配置的最佳做法是什么?
  8. 我是一个前端开发者,所有这些后端的东西对我来说并不明显,所以请在你的答案中考虑它。

    这是我当前build.gradle

    的内容
    plugins {
        id 'org.springframework.boot' version '1.5.3.RELEASE'
        id 'java'
        id 'groovy'
    }
    
    jar {
        baseName = 'myproject'
        version =  '0.0.1-SNAPSHOT'
    }
    
    repositories {
        jcenter()
    }
    
    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web")
        testCompile("org.springframework.boot:spring-boot-starter-test")
        compile("org.springframework.boot:spring-boot-starter-data-jpa")
        compile 'mysql:mysql-connector-java'
        compile("com.h2database:h2")
        compile("org.springframework.boot:spring-boot-starter-security")
        compile('io.jsonwebtoken:jjwt:0.7.0')
        compile localGroovy()
    }
    

2 个答案:

答案 0 :(得分:7)

  

如何进行两种不同的配置(开发和生产)?

在您的情况下,您可以使用配置文件来实现它。你可以阅读它here。对于每个配置文件,您可以拥有specific application properties文件(名为application-%PROFILE_NAME%.properties,如application-prod.properties.yml配置文件也是如此)并且您必须指定您使用的配置文件您正在通过命令行开关启动您的应用程序,例如:

--spring.profiles.active=prod
  

放置配置文件的位置?

application.properties文件位于同一位置。

  

我是否必须在build.gradle中更改某些内容?

不,您不需要修改构建脚本。由于运行应用程序需要所有特定配置,因此不需要构建。

  

如何使用开发或生产配置构建应用程序?

您不需要使用某些特定配置构建它,只需使用它运行它。

  

如何使用开发或生产配置运行应用程序?

如前所述 - 只需指定启动应用程序时要使用的配置文件。

  

创建多个环境配置的最佳做法是什么?

至于我,如果你使用spring - 使用配置文件和配置文件特定的配置和bean定义。

答案 1 :(得分:0)

在此处概述的现有application.properties文件旁边创建一个单独的application-dev.properties以包含您的h2配置https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-properties,然后在启动应用程序时通过在启动应用程序时传入以下参数来激活它--spring.profiles.active=dev您可以对生产application-prod.properties执行相同操作,并将常用配置保留在application.properties中。