1. 程式人生 > >spring boot打成jar包用外部配置檔案替換配置

spring boot打成jar包用外部配置檔案替換配置

由於需求的原因,配置檔案中的資料庫連線等內容需要動態替換。

首先搜到的是可以執行jar包的時候傳配置引數:

java -jar demo.jar --server.port = 9000

但是客戶端傳給我的是一整個大json串,所以pass。

然後瞭解到SpringApplication從4個地方載入配置檔案:

  1. jar包同目錄下的config資料夾中
  2. jar包同目錄下
  3. classpath下的config資料夾中
  4. 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>