2017-05-30 40 views
1

我正在研究Spring Boot中的一個簡單應用程序。據當地開發(和它的作品)與:Spring Boot + Gradle - 在哪裏放置環境配置?

  • 搖籃,
  • H2數據庫與application.properties設置連接屬性放在項目的根
  • Maven的文件夾結構(src/main/groovysrc/main/resources等)

現在是我要將它部署到Openshift的時候了,所以我需要用MySQL設置創建額外的生產配置,但我不知道該把它放在哪裏以及如何使用它。

所以我的問題是:

  1. 我應該怎麼做有兩種不同的配置(developmentproduction)?
  2. 何處放置配置文件?
  3. 我必須改變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() 
} 

回答

3

我應該怎麼做有兩種不同的配置(開發和生產)?

在你的情況,你可以使用配置文件來實現它。你可以閱讀關於它here。對於每個配置文件,你可以有specific application properties文件(命名爲application-%PROFILE_NAME%.properties,如application-prod.properties,也是同樣的道理對於.yml配置文件)和您必須指定何種個人資料喲用那麼你就開始通過命令行開關您的應用程序,例如像這樣:

--spring.profiles.active=prod 

何處放置配置文件?

就在與application.properties文件相同的地方。

我必須改變build.gradle中的內容嗎?

不,您不需要修改您的構建腳本。由於運行應用程序需要所有特定配置,而不是用於構建。

如何使用開發或生產配置構建應用程序?

你不需要用某種特定的配置來構建它,只需要用它來運行它。

如何使用開發或生產配置運行應用程序?

如前所述 - 只需指定啓動應用程序時使用的配置文件。

創建多個環境配置的最佳做法是什麼?

至於我,如果你使用彈簧 - 使用配置文件和配置文件特定的配置和bean定義。

0

創建沿側單獨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現有application.properties文件,然後激活此通過傳遞運行開發時在下面的參數啓動該應用程序--spring.profiles.active=dev你可以做同樣的生產即application-prod.properties並保持常見的配置在application.properties時。

+0

何處放置這些配置文件?在項目的根目錄下?他們是否會被列入發生的戰爭? – akn

+0

將它們放在'src/main/resources'中,那麼它們將被包含在生成的war/jar中。如果這不是您想要的,您可以通過設置spring.config.location從工件外部加載文件。 –