loading...
Cover image for Micronaut PetClinic

Micronaut PetClinic

bufferings profile image Mitz ・1 min read

I tried implementing Spring PetClinic with Micronaut instead of using Spring.

https://github.com/bufferings/micronaut-petclinic

The application uses Thymeleaf, JPA(Hibernate) and DI. But it starts in a few hundreds of millis with GraalVM native image. It's so fast!

In this picture, it started in 324ms:

Screen Capture

I haven't yet implemented all the features and it's still very dirty, but basic features work.

How to try (not native image)

1. Clone the Project

git clone https://github.com/bufferings/micronaut-petclinic.git
cd micronaut-petclinic

2. Start PostgreSQL

This Petclinic uses PostgreSQL. You could start PostgreSQL with docker:

docker-compose up

3. Run Application

./mvnw compile exec:exec

3-2. Or you can run it from JAR

./mvnw package
java -jar target/micronaut-*.jar

4. Access PetClinic

You can then access petclinic here: http://localhost:8080/

With JAR file, it takes around 5s to start the app on my laptop.

How to try native image

Micronaut supports GraalVM native image. So I made this PetClinic run as native image.

./mvnw package && docker build -t micronaut-petclinic .

I usually have ☕ (around 10 mins on my laptop) to wait for the build finishes.

# Docker for Mac or Windows
export HOST_NAME=host.docker.internal
# Linux
export HOST_NAME=172.17.0.1

docker run --rm -p 8080:8080 -e JDBC_URL=jdbc:postgresql://${HOST_NAME}:5432/petclinic micronaut-petclinic

Then it takes around 300ms to start. (๑•̀ㅂ•́)و✧

Posted on by:

bufferings profile

Mitz

@bufferings

I like Java, SpringBoot, Thymeleaf, Docker, Scrum, DDD and love my daughters.

Discussion

markdown guide