这里分类和汇总了欣宸的全部原创(含配套源码):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