4.2. 使用嵌套对象配置
您可以在现有类中定义嵌套类。此流程演示了如何在 Quarkus config-quickstart 项目中创建嵌套类配置。
先决条件
-
您已创建了 Quarkus
config-quickstart项目。
流程
查看
GreetingConfiguration.java文件,并确保它包括以下导入语句:src/main/java/org/acme/config/GreetingConfiguration.java
import io.quarkus.arc.config.ConfigProperties; import java.util.Optional; import java.util.List;
import io.quarkus.arc.config.ConfigProperties; import java.util.Optional; import java.util.List;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
@ConfigProperties注释在GreetingConfiguration.java文件中添加配置。以下示例显示了
GreetingConfiguration类及其属性的配置:src/main/java/org/acme/config/GreetingConfiguration.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
GreetingConfiguration类中添加一个嵌套类,如下例所示:src/main/java/org/acme/config/GreetingConfiguration.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例显示了一个嵌套类
ContentConfig。字段的名称(本例中为content)决定了绑定到对象的属性的名称。在
application.properties文件中设置greeting.content.prize-amount和greeting.content.recipients配置属性。以下示例显示了
GreetingConfiguration和ContentConfig类的属性值:src/main/resources/application.properties
greeting.message = hello greeting.name = quarkus greeting.content.prize-amount=10 greeting.content.recipients=Jane,John
greeting.message = hello greeting.name = quarkus greeting.content.prize-amount=10 greeting.content.recipients=Jane,JohnCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
@Inject注解将GreetingConfiguration类注入GreetingResource类,并更新/greeting端点返回的消息字符串,显示您为新greeting.content.prize-amount和greeting.content.recipients属性设置的值:src/main/java/org/acme/config/GreetingResource.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以开发模式编译并启动应用程序:
./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果没有为类属性提供值,应用程序无法编译,您会收到
javax.enterprise.inject.spi.DeploymentException,它表示缺失的值。这不适用于带有默认值的Optional 字段和字段。在新终端窗口中输入以下命令来验证端点是否返回消息:
curl http://localhost:8080/greeting
curl http://localhost:8080/greetingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您会收到一条信息,其中包含第一行上的问候以及第二行上的原概量:
hello quarkus! Jane,John receive total of candies: 10
hello quarkus! Jane,John receive total of candies: 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 按 CTRL+C 停止应用程序。
使用 @ConfigProperties 注解的类可以使用与以下示例类似的 Bean Validation 注解添加注解:
您的项目必须包含 quarkus-hibernate-validator 依赖项。