spring boot打成jar包用外部配置檔案替換配置
阿新 • • 發佈:2019-02-17
由於需求的原因,配置檔案中的資料庫連線等內容需要動態替換。
首先搜到的是可以執行jar包的時候傳配置引數:
java -jar demo.jar --server.port = 9000
但是客戶端傳給我的是一整個大json串,所以pass。
然後瞭解到SpringApplication從4個地方載入配置檔案:
- jar包同目錄下的config資料夾中
- jar包同目錄下
- classpath下的config資料夾中
- classpath目錄下
優先順序依次降低,前兩個是從外部讀取配置檔案的。但由於某些原因這種方法可能也不滿足要求。。
第三種:程式碼中指定
public class Application { public static void main(String[] args) throws IOException { Properties properties = new Properties(); InputStream in = new FileInputStream("application.properties"); properties.load(in); SpringApplication app = new SpringApplication(Application.class); app.setDefaultProperties(properties); app.run(args); } }
注意這種方式pom.xml打包時需要去除配置檔案,在<build>中加:
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>*.properties</exclude> <exclude>*.yml</exclude> </excludes> </resource> </resources>