這裡分類和彙總了欣宸的全部原創(含配套原始碼):https://github.com/zq2599/blog_demos
mvn "io.quarkus:quarkus-maven-plugin:create" \
-DprojectGroupId="com.bolingcavalry" \
-DprojectArtifactId="hello-quarkus" \
-DprojectVersion="1.0-SNAPSHOT" \
-DclassName="HobbyResource" \
-Dpath="actions"
package com.bolingcavalry;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.time.LocalDateTime;
@Path("/actions")
public class HobbyResource {
@ConfigProperty(name = "greeting.message")
String message;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello RESTEasy, " + LocalDateTime.now() + " [" + message + "]";
}
}
mvn clean package -U -DskipTests -Dquarkus.package.type=uber-jar
官方給出一張圖,說明了所有設定方式以及它們的優先順序
接下來挨個試試這些設定方式
java -Dgreeting.message="from system properties" -jar hello-quarkus-1.0-SNAPSHOT-runner.jar
在設定環境變數時,要注意轉換規則:全大寫、點號變下劃線,因此greeting.message在環境變數中應該寫成GREETING_MESSAGE
開啟控制檯,執行以下命令,即可在當前對談中設定環境變數:
export GREETING_MESSAGE="from Environment variables"
GREETING_MESSAGE=from .env file
為了避免之前的操作帶來的影響,請刪除剛才建立的.env檔案
於hello-quarkus-1.0-SNAPSHOT-runner.jar檔案所在目錄,新建資料夾config
在config資料夾下新建檔案application.properties,內容如下:
greeting.message=from config/application.properties
執行java -jar hello-quarkus-1.0-SNAPSHOT-runner.jar啟動應用,瀏覽器存取介面,如下圖,可見環境變數已生效:
上圖紅框指出了MicroProfile規定的組態檔位置,咱們來試試在此位置放置組態檔是否能生效
如下圖紅框,在工程的src/main/resources/META-INF目錄下新建檔案microprofile-config.properties,內容如黃框所示
執行應用試試,設定生效了
注意:microprofile-config.properties檔案所在目錄是src/main/resources/META-INF,不是src/main/resources/META-INF/resources
至此,六種設定方式及其範例驗證都完成了,您可以按照自己的實際情況靈活選擇
greeting.message=from config/application.properties
greeting.name=Will
greeting.message=hello, ${greeting.name:xxxxxx}
greeting.message=hello, ${quarkus.uuid}
my.collection=dog,cat,turtle
@Path("/actions")
public class HobbyResource {
@ConfigProperty(name = "my.collection")
List<String> message;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello RESTEasy, " + LocalDateTime.now() + ", " + message + "";
}
}
my.collection[0]=dog
my.collection[1]=cat,turtle
my.collection[2]=turtle