Quarkus Questions, Answered
A guide to the top 10 things junior Java developers ask (and need to know) when starting with Quarkus
I didn’t have to guess what junior Java developers want to know about Quarkus: I've been asked these questions dozens of times. At meetups, during hallway chats at conferences, and in DMs afterward, folks starting out with Quarkus often come up with the same handful of questions. And honestly? They’re great questions. If you're new to Quarkus or cloud-native Java in general, you're not alone. The truth is, even seasoned developers are constantly learning. In tech, things move fast, frameworks evolve, tools shift, and curiosity becomes your best long-term strategy. This article rounds up the ten most common beginner questions I’ve heard and answers them clearly, so you can move forward with confidence.
1. What is Quarkus, and how does it differ from other Java frameworks?
Answer:
Quarkus is a cloud-native Java framework tailored for fast startup times and low memory usage. Quarkus redefines how Java applications are built and executed by shifting much of the work to the build phase ensuring that the costly work happens only once — during the build process — not at every startup. It results in faster, smaller, and more resource-efficient Java applications on both GraalVM native images and traditional JVM deployments.
Documentation:
Quarkus - Getting Started
Related Topics:
2. How do I create a new Quarkus project?
Answer:
Use the Quarkus CLI or Maven plugin to scaffold a project with predefined endpoints.
Example:
mvn io.quarkus:quarkus-maven-plugin:create \
-DprojectGroupId=com.example \
-DprojectArtifactId=my-app \
-DclassName="com.example.HelloResource" \
-Dpath="/hello"
Documentation:
Creating Your First Application
Related Topics:
3. What are configuration profiles in Quarkus?
Answer:
Quarkus supports dev
, test
, and prod
profiles for environment-specific settings. You can also define custom profiles.
Example:
%dev.quarkus.http.port=8081
Documentation:
Configuration Reference Guide
Related Topics:
4. How do I call external REST APIs using Quarkus?
Answer:
Use the REST Client extension with interfaces annotated using JAX-RS. Quarkus generates the HTTP client implementation at build time.
Example:
@RegisterRestClient
@Path("/api")
public interface ExternalService {
@GET
@Path("/data")
String getData();
}
Documentation:
Using the REST Client
Related Topics:
5. How does dependency injection work in Quarkus?
Answer:
Quarkus uses Contexts and Dependency Injection (CDI). You annotate fields or constructors with @Inject
, and Quarkus handles object lifecycles.
Example:
@Inject
MyService myService;
Documentation:
CDI Reference Guide
Related Topics:
Bean scopes (e.g.,
@ApplicationScoped
)
6. How do I configure my Quarkus application using environment variables?
Answer:
Use placeholders in application.properties
to reference environment variables.
Example:
quarkus.datasource.username=${DB_USERNAME}
Documentation:
Configuring Your Application
Related Topics:
7. What is application.properties
used for in Quarkus?
Answer:
This file controls settings like server ports, database connections, feature toggles, and logging behavior. It can include profile-specific or environment-based configurations.
Documentation:
Configuration Reference Guide
Related Topics:
Using
application.yaml
8. How do I write tests in Quarkus?
Answer:
Quarkus supports JUnit 5. Use @QuarkusTest
to run integration tests with dependency injection and a real HTTP layer.
Example:
@QuarkusTest
public class HelloResourceTest {
@Test
void testHelloEndpoint() {
given().when().get("/hello").then().statusCode(200);
}
}
Documentation:
Testing Your Application
Related Topics:
9. How do I enable live reload during development?
Answer:
Run the app in development mode with:
mvn quarkus:dev
Changes in Java, configuration, and templates are picked up immediately.
Documentation:
Development Mode and Live Reload
Related Topics:
10. What is Dev Services in Quarkus?
Answer:
Dev Services automatically start services (like databases or Kafka) in containers when running in dev or test mode, so you don’t need to configure them manually.
Documentation:
Dev Services
Related Topics:
Got a question I didn’t cover? Drop it in the comments. I’d love to hear what’s on your mind as you explore Quarkus. Whether you’re building your first REST API or just curious about how Quarkus fits into modern Java development, there’s no better way to learn than by trying it out. Spin up a new project, run it in dev mode, and see what makes Quarkus feel fast, fun, and developer-friendly.
Let me know how it goes!