1.7. 以编程方式访问配置
您可以在代码中定义方法,以检索应用中的配置属性值。这样,您可以动态查找配置属性值,或者从 CDI Bean 或 Jakarta REST (以前称为 JAX-RS)资源的类中检索配置属性值。
您可以使用 org.eclipse.microprofile.config.ConfigProvider.getConfig ()
方法访问配置。config
对象的 getValue ()
方法返回配置属性的值。
先决条件
- 您有一个 Quarkus Maven 项目。
流程
使用方法访问应用程序代码中任何类或对象的配置属性值。根据您要检索的值是否在项目中的配置源中设置,您可以使用以下方法之一:
要访问项目中配置源中设置的属性值,例如在
application.properties
文件中,使用getValue ()
方法:String <variable-name> = ConfigProvider.getConfig().getValue("<property-name>", <data-type-class-name>.class);
String <variable-name> = ConfigProvider.getConfig().getValue("<property-name>", <data-type-class-name>.class);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,要检索带有数据类型
String
的greeting.message
属性的值,并分配给代码中的message
变量,请使用以下语法:String message = config.getValue("greeting.message", String.class);
String message = config.getValue("greeting.message", String.class);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您要检索是可选的或默认值,且可能没有在应用程序的
application.properties
文件或其他配置源中定义时,请使用getOptionalValue ()
方法:String <variable-name> = ConfigProvider.getConfig().getOptionalValue("<property-name>", <data-type-class-name>.class);
String <variable-name> = ConfigProvider.getConfig().getOptionalValue("<property-name>", <data-type-class-name>.class);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,要检索
greeting.name
属性的值,它是可选的,具有数据类型String
,并分配给代码中的name
变量,请使用以下语法:Optional<String> name = config.getOptionalValue("greeting.name", String.class);
Optional<String> name = config.getOptionalValue("greeting.name", String.class);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下片段显示了使用 programmatic 访问配置,使用上述 GreetingResource
类的变体:
src/main/java/org/acme/config/GreetingResource.java