4.3. 使用 @ConfigProperties 注解接口
管理属性的替代方法是将它们定义为接口。如果您使用 @ConfigProperties 注解接口,接口可以扩展其他接口,您可以使用整个接口层次结构中的方法绑定属性。
此流程演示了 GreetingConfiguration 类的实现作为 Quarkus config-quickstart 项目中的接口。
先决条件
-
您已创建了 Quarkus
config-quickstart项目。
流程
查看
GreetingConfiguration.java文件,并确保它包括以下导入语句:src/main/java/org/acme/config/GreetingConfiguration.java
import io.quarkus.arc.config.ConfigProperties; import org.eclipse.microprofile.config.inject.ConfigProperty; import java.util.Optional;
import io.quarkus.arc.config.ConfigProperties; import org.eclipse.microprofile.config.inject.ConfigProperty; import java.util.Optional;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
GreetingConfiguration类作为接口添加到GreetingConfiguration.java文件中:src/main/java/org/acme/config/GreetingConfiguration.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
@Inject注解将GreetingConfiguration类注入GreetingResource类: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!
hello quarkus!Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 按 CTRL+C 停止应用程序。