ToB企服应用市场:ToB评测及商务社交产业平台

标题: quarkus实战之八:profile [打印本页]

作者: 锦通    时间: 2023-7-28 07:46
标题: quarkus实战之八:profile
欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本篇概览

  1. # 这个配置信息在各个环境中都是相同的
  2. greeting.message=hello
  3. # 这个配置信息在各个环境中都不一样
  4. quarkus.http.port=9090
复制代码
演示代码

  1. mvn "io.quarkus:quarkus-maven-plugin:create" \
  2.   -DprojectGroupId="com.bolingcavalry" \
  3.   -DprojectArtifactId="hello-quarkus" \
  4.   -DprojectVersion="1.0-SNAPSHOT" \
  5.   -DclassName="HobbyResource" \
  6.   -Dpath="actions"
复制代码
  1. package com.bolingcavalry;
  2. import org.eclipse.microprofile.config.inject.ConfigProperty;
  3. import javax.ws.rs.GET;
  4. import javax.ws.rs.Path;
  5. import javax.ws.rs.Produces;
  6. import javax.ws.rs.core.MediaType;
  7. import java.time.LocalDateTime;
  8. @Path("/actions")
  9. public class HobbyResource {
  10.     @ConfigProperty(name = "greeting.message")
  11.     String message;
  12.     @GET
  13.     @Produces(MediaType.TEXT_PLAIN)
  14.     public String hello() {
  15.         return "Hello RESTEasy, " + LocalDateTime.now() + " [" + message + "]";
  16.     }
  17. }
复制代码
  1. # 这个配置信息在各个环境中都是相同的
  2. greeting.message=hello
复制代码
设定profile

  1. # 这个配置信息在各个环境中都是相同的
  2. quarkus.profile=dev
  3. # 如果不指定profile,就使用此配置
  4. quarkus.http.port=8080
复制代码
  1. java -Dquarkus.profile="dev" -jar hello-quarkus-1.0-SNAPSHOT-runner.jar
复制代码
同一个配置项在不同profile时的值

  1. # 指定当前profilequarkus.profile=dev# 这个配置信息在各个环境中都是相同的
  2. greeting.message=hello# 如果profile为dev,就是用此配置%dev.quarkus.http.port=8081# 如果profile为production,就是用此配置%production.quarkus.http.port=8082# 如果不指定profile,或者profile既不是dev也不是production,就使用此配置quarkus.http.port=8080
复制代码
需要大写的场景

  1. # 这个配置信息在各个环境中都是相同的
  2. GREETING_MESSAGE=hello
  3. # 如果profile为dev,就是用此配置
  4. _DEV_QUARKUS_HTTP_PORT=8081
  5. # 如果profile为production,就是用此配置
  6. _PRODUCTION_QUARKUS_HTTP_PORT=8082
  7. # 如果不指定profile,就使用此配置
  8. QUARKUS_HTTP_PORT=8080
复制代码
  1. java -Dquarkus.profile=dev -jar hello-quarkus-1.0-SNAPSHOT-runner.jar
复制代码
不指定profile时的默认值

每个profile对应一个配置文件

  1. resources
  2. ├── META-INF
  3. │   └── resources
  4. │       └── index.html
  5. ├── application-staging.properties
  6. └── application.properties
复制代码
  1. greeting.message=hello
  2. quarkus.http.port=8080
复制代码
  1. greeting.message=hello
  2. quarkus.http.port=8081
复制代码


Parent Profile

  1. # 指定profile的名字
  2. quarkus.profile=dev
  3. # 指定parent的名字
  4. quarkus.config.profile.parent=common
  5. %common.quarkus.http.port=9090
  6. %dev.quarkus.http.ssl-port=9443
  7. quarkus.http.port=8080
  8. quarkus.http.ssl-port=8443
复制代码
修改默认profile

  1. mvn clean package -U -Dquarkus.package.type=uber-jar -Dquarkus.profile=prod-aws
复制代码

三个关键注意事项(重要)

  1. io.quarkus.runtime.configuration.ProfileManager#getActiveProfile
复制代码
  1. @ConfigProperty("quarkus.profile")
  2. String profile;
复制代码
欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4