亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Boot 2.0 使用 WAR 打包將 Tomcat 中的屬性文件外部化

Spring Boot 2.0 使用 WAR 打包將 Tomcat 中的屬性文件外部化

牛魔王的故事 2022-10-12 09:56:27
我想創建一個 Spring Boot 應用程序(打包為 WAR),它會根據部署的環境自動覆蓋一些配置文件。我還希望屬性文件在 WAR 之外。我使用 OS Centos 和 Tomcat 作為 Web 服務器。我正在嘗試遵循 Vladimir Mitev 在以下問題中的回答類似問題。為了實現這一點,我創建了這個 SPRING_CONFIG_ADDITIONAL_LOCATION 環境變量。然后在路徑中,我創建了一個 db.properties 文件,其中包含我想要覆蓋的屬性。然后在 servlet 初始化程序中,我放置了以下配置:public class ServletInitializer extends SpringBootServletInitializer {  @Override  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {    return application.sources(MyApplication.class).properties("spring.config.name: db");  }}這是另一個需要的類:@SpringBootApplicationpublic class MyApplication{    public static void main(String[] args) {        System.setProperty("spring.config.name", "db");        SpringApplication.run(MyApplication.class, args);    }}但是初始化期間的 Spring Boot 沒有找到 db.properties 文件。在官方文檔中似乎我必須使用這個“spring.config.additional-location”才能實現我的目標,但我不知道如何。
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

你可以試試:

  1. 在 [tomcat-server-folder]/bin 中創建名為“config”的文件夾

  2. 在 config 文件夾中創建 db.properties 文件。([tomcat-server-folder]/bin/config/db.properties)

  3. 只需在 Tomcat 的 bin 目錄中創建包含以下內容的文件 setenv.sh:

JAVA_OPTS="$JAVA_OPTS -Dspring.config.name=db"

或者您可以配置文件的特定位置:

JAVA_OPTS="$JAVA_OPTS -Dspring.config.location=/opt/app/default.properties,/opt/app/db.properties"


查看完整回答
反對 回復 2022-10-12
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

在 SpringBootServletInitializer 中配置來不及,必須在 spring 應用運行前設置屬性


@SpringBootApplication

public class MyApplication {


    public static void main(String[] args) {

        System.setProperty("spring.config.name", "db");

        SpringApplication.run(MyApplication.class, args);

    }

}


查看完整回答
反對 回復 2022-10-12
  • 2 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號