4.2.2. 在应用中使用 MicroProfile Config 属性

创建使用配置的 ConfigSource 的应用。

先决条件

  • JBoss EAP 中启用了 MicroProfile Config。
  • 安装了最新的 POM。
  • Maven 项目已配置为创建 MicroProfile 配置应用。

流程

  1. 创建用于存储类文件的目录:

    $ mkdir -p APPLICATION_ROOT/src/main/java/com/example/microprofile/config/

    其中 APPLICATION_ROOT 是含有应用的 pom.xml 配置文件的目录。

  2. 进入新目录:

    $ cd APPLICATION_ROOT/src/main/java/com/example/microprofile/config/

    在此目录中创建此流程中描述的所有类文件。

  3. 创建名为 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 应用。

  4. 创建名为 HelloService.java 的类文件,其内容如下:

    package com.example.microprofile.config;
    
    public class HelloService {
    	String createHelloMessage(String name){
            return "Hello " + name;
        }
    }
  5. 创建名为 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,则返回 value jim
  6. src/main/webapp/WEB-INF/ 目录中创建一个名为 beans.xml 的空 文件:

    $ touch APPLICATION_ROOT/src/main/webapp/WEB-INF/beans.xml

    其中 APPLICATION_ROOT 是含有应用的 pom.xml 配置文件的目录。

  7. 进入应用程序的根目录:

    $ cd APPLICATION_ROOT

    其中 APPLICATION_ROOT 是含有应用的 pom.xml 配置文件的目录。

  8. 构建项目:

    $ mvn clean install wildfly:deploy
  9. 测试输出:

    $ curl http://localhost:8080/microprofile-config/config/json

    以下是预期的输出:

    {"result":"Hello jim"}