Here we are going to look at Eclipse Microprofile Configuration with Java EE 8 and JBoss EAP 7.2.
The configuration project is a convenient project to easily load configuration from:
- System Property, e.g. -Dnum.size=20
- Properties file, e.g. configuration.properties
To get started we use the previous blog project setup, with pom.xml, web.xml, beans.xml and persistence.xml. Please see https://magnus-k-karlsson.blogspot.com/2019/10/eclipse-microprofile-and-java-ee-8-with.html.
And the injection configuration:
package se.magnuskkarlsson.example.microprofile.boundary;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@Path("/persons")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class PersonResource {
@Inject
@ConfigProperty(name = "num.size", defaultValue = "12")
int numSize;
@GET
public Response hello() {
JsonObject json = Json.createObjectBuilder().add("message", "HELLO " + numSize).build();
return Response.ok(json.toString()).build();
}
}
And to make JAX-RS complete we also need
package se.magnuskkarlsson.example.microprofile;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class JAXRSApplication extends Application {
}
Now we can build and deploy the web application. To configure we have now two options
- System Properties, e.g. ./standalone.sh -Dnum.size=20
- Property File, e.g. ./standalone.sh -P ../standalone/configuration/configuration.properties
Test both ways, but for production, property file is the recommended way.
No comments:
Post a Comment