繁体   English   中英

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

[英]Spring Boot + Gradle - where to put environment configuration?

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

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

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

所以我的问题是:

  1. 我应该怎么做才能有两种不同的配置( developmentproduction )?
  2. 在哪里放配置文件?
  3. 我是否必须在build.gradle更改某些build.gradle
  4. 如何使用开发或生产配置构建应用程序?
  5. 如何使用开发或生产配置运行应用程序?
  6. 创建多个环境配置的最佳做法是什么?

我是一个前端开发者,所有这些后端的东西对我来说并不明显,所以请在你的答案中考虑它。

这是我当前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()
}

我应该怎么做才能有两种不同的配置(开发和生产)?

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

--spring.profiles.active=prod

在哪里放配置文件?

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

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

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

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

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

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

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

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

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

在此处概述的现有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然后在dev中运行时通过在启动应用程序时传入以下参数来激活它--spring.profiles.active=dev你可以做到同样用于生产,即application-prod.properties并在application.properties保留通用配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM