Dependency Injection In the previous step you created a basic RESTful Java application with Quarkus. In this step we’ll add a custom bean using dependency injection (DI). Quarkus DI solution is based on the Contexts and Dependency Injection for Java 2.0 specification. Add Custom Bean Let’s modify the application and add a companion bean. In VS Code, right-click on the org.acme.people.service package in the project browser and select New File…. Name the file GreetingService.java. Next, replace the below code into the class: package org.acme.people.service; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped public class GreetingService { private String hostname = System.getenv().getOrDefault("HOSTNAME", "unknown"); public String greeting(String name) { return "hello " + name + " from " + hostname; } } This is an injectable bean that implements a greeting() method returning a string hello <hostname> (where <hostname> is the Linux hostname of the machine on which the code runs). Next, open the existing GreetingResource.java file (in the org.acme.people.rest package) and add a new field and method above the existing hello method: @Inject GreetingService service; @GET @Produces(MediaType.TEXT_PLAIN) @Path("/greeting/{name}") @NonBlocking public String greeting(@PathParam("name") String name) { return service.greeting(name); } This will cause our new GreetingResource class to be instantiated and injected as the service field, and then the method greeting accesses this service to return the name. You will get red error squigglies when you paste this code due to missing import statements: Add the necessary imports below the existing import statements near the top of the file: import jakarta.inject.Inject; import org.acme.people.service.GreetingService; import jakarta.ws.rs.PathParam; If you do not get red squigglies, or you can’t make them disappear, try to close the file and re-open it, or reload your web browser. Inspect the results Check that it works as expected by accessing the /hello/greeting/quarkus with curl: curl http://localhost:8080/hello/greeting/quarkus Note we are exercising our new bean using the /hello/greeting/quarkus endpoint, and you should see hello quarkus from <hostname>. In this case, the hostname is the hostname from the pod the app is running on within Kubernetes and will change later on. Congratulations! It’s a familiar CDI-based environment for you Enterprise Java developers out there, with powerful mechanisms to reload your code as you type (or very close to realtime). In the next step, we’ll create some tests for our app, which should also be familiar to all developers. Getting Started with Quarkus Testing Quarkus Apps