Java Quarkus Tutorial
Quarkus is a Kubernetes-native Java framework tailored for GraalVM and OpenJDK HotSpot. It is designed for building Java applications that are optimized for cloud environments and microservices architecture.
1. Prerequisites
Before getting started with Quarkus, make sure you have the following installed:
- Java JDK (11 or later): You can download it from AdoptOpenJDK or Oracle.
- Maven: Install Maven from Apache Maven.
- Quarkus CLI (optional): You can install it via SDKMAN! or download it directly from the Quarkus website.
Verify Installation
To check your installations, run the following commands:
java -version
mvn -version
If you installed the Quarkus CLI:
quarkus version
2. Creating a New Quarkus Project
You can create a new Quarkus project using the Quarkus CLI or Maven.
Using the Quarkus CLI
Run the following command to create a new project:
quarkus create app org.acme:getting-started --no-code
cd getting-started
Using Maven
Alternatively, you can use Maven to generate a new project:
mvn io.quarkus:quarkus-maven-plugin:2.4.2:create -DgroupId=org.acme -DartifactId=getting-started -Dextensions="resteasy,resteasy-jackson"
cd getting-started
Project Structure
After creating the project, the structure will look like this:
getting-started
├── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
└── pom.xml
3. Developing Your First REST Endpoint
Create a Resource Class
Create a new Java class named GreetingResource.java in the src/main/java/org/acme directory:
package org.acme;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello, Quarkus!";
}
}
Explanation
- @Path: Defines the URI path for the resource.
- @GET: Indicates that this method responds to HTTP GET requests.
- @Produces: Specifies the media type returned by the method.
4. Running Your Application
You can run your Quarkus application in development mode using the following command:
./mvnw quarkus:dev
Accessing the Endpoint
Once the application is running, open your web browser or a tool like curl to access the endpoint:
http://localhost:8080/hello
You should see the output:
Hello, Quarkus!
5. Adding Dependencies
You can easily add extensions (dependencies) to your Quarkus project. For example, to add Hibernate ORM with Panache:
./mvnw quarkus:add-extension -Dextensions="hibernate-orm-panache"
Check Available Extensions
You can see all available extensions by running:
./mvnw quarkus:list-extensions
6. Building the Application
To build a production-ready package of your application, run:
./mvnw package
This will create a jar file in the target directory.
7. Deploying to Kubernetes
Quarkus simplifies deployment to Kubernetes. You can build a Docker image with:
./mvnw clean package -Dquarkus.container-image.build=true
Deploying to Kubernetes
You can use the Kubernetes CLI to deploy the generated Docker image:
kubectl apply -f src/main/kubernetes/kubernetes.yml
Ensure your kubernetes.yml file is configured correctly for your application.
8. Conclusion
Quarkus is a powerful framework for building cloud-native Java applications. This tutorial covered the basics of setting up a Quarkus project, creating a simple REST endpoint, running the application, adding dependencies, and deploying it to Kubernetes.
Further Reading
Content Review
The content in this repository has been reviewed by chevp. Chevp is dedicated to ensuring that the information provided is accurate, relevant, and up-to-date, helping users to learn and implement programming skills effectively.
About the Reviewer
For more insights and contributions, visit chevp's GitHub profile: chevp's GitHub Profile.