4.2.2. 在应用中使用 MicroProfile Config 属性
创建使用配置的 ConfigSource
的应用。
先决条件
- JBoss EAP 中启用了 MicroProfile Config。
- 安装了最新的 POM。
- Maven 项目已配置为创建 MicroProfile 配置应用。
流程
创建用于存储类文件的目录:
$ mkdir -p APPLICATION_ROOT/src/main/java/com/example/microprofile/config/
其中
APPLICATION_ROOT
是含有应用的pom.xml
配置文件的目录。进入新目录:
$ cd APPLICATION_ROOT/src/main/java/com/example/microprofile/config/
在此目录中创建此流程中描述的所有类文件。
创建名为
HelloApplication.java
的类文件,其包含以下内容:package com.example.microprofile.config; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/") public class HelloApplication extends Application { }
此类将应用定义为 Jakarta RESTful Web Services 应用。
创建名为
HelloService.java
的类文件,其内容如下:package com.example.microprofile.config; public class HelloService { String createHelloMessage(String name){ return "Hello " + name; } }
创建名为
HelloWorld.java
的类文件,其包含以下内容:package com.example.microprofile.config; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.eclipse.microprofile.config.inject.ConfigProperty; @Path("/config") public class HelloWorld { @Inject @ConfigProperty(name="name", defaultValue="jim") 1 String name; @Inject HelloService helloService; @GET @Path("/json") @Produces({ "application/json" }) public String getHelloWorldJSON() { String message = helloService.createHelloMessage(name); return "{\"result\":\"" + message + "\"}"; } }
- 1
- MicroProfile Config 属性通过注释
@ConfigProperty(name="name", defaultValue="jim")
注入到类中。如果没有配置ConfigSource
,则返回 valuejim
。
在
src/main/webapp/WEB-INF/ 目录中创建一个名为
文件:beans.xml
的空$ touch APPLICATION_ROOT/src/main/webapp/WEB-INF/beans.xml
其中
APPLICATION_ROOT
是含有应用的pom.xml
配置文件的目录。进入应用程序的根目录:
$ cd APPLICATION_ROOT
其中
APPLICATION_ROOT
是含有应用的pom.xml
配置文件的目录。构建项目:
$ mvn clean install wildfly:deploy
测试输出:
$ curl http://localhost:8080/microprofile-config/config/json
以下是预期的输出:
{"result":"Hello jim"}