Goodbye Grails, Hello Micronaut #9: Micronaut Application
This is the ninth post in a series that will guide you through the migration from Grails to Micronaut. This guide requires your application to be based on Grails 4.x or later.
In this stage, we should have all the necessary parts of the application migrated. Now the time has come to create the new Micronaut application.
Let's create a new project with -mn
suffix such as hello-mn
under apps
subfolder with a build file hello-mn.gradle
similar to the following one:
The subproject can contain a single class that will launch the application:
Pay attention to the package declaration, otherwise, the domain classes cannot be found.
If you want to run the application you can create a Docker Compose file for the database inside hello-mn
directory:
MariaDB is used in this example to increase the compatibility with the latest Apple Silicon chips.
And you will also need to create the basic configuration file in src/main/resources/application.yml
file:
You can also create a class to preload some example data into the database:
The class implements ApplicationEventListener<ApplicationStartupEvent>
to execute the code right after the application has started successfully.
When you run the docker compose file from the hello-mn
directory:
docker compose up -d
Then you should be able to run the application from the root of the project:
./gradlew :hello-mn:run
When you query the server from either cURL or some HTTP client then you should get the default result:
curl http://localhost:8080/vehicle/1# {"id":1,"name":"The Box","make":"Citroen","model":"Berlingo"}
Now the time has come to revisit the rest of the contents of the Grails application. We are now free to remove the controllers and their tests.
We usually still have the application.groovy
file to be migrated into series of application.yml
. Beware of environment { ... }
blocks that are not supported in Micronaut — you need to migrate to separate application-development.yml
and application-production.yml
files.
Please, let us know which other parts have been left in the old Grails application and we try to cover them in apendicies.
Although the Micronaut application is up and running there is the very last step to migrate the database implementation from GORM to Micronaut.
Table of Contents
- Multiproject
- Configuration
- Static Compilation
- Datasets
- Marshalling
- Domain Classes
- Services
- Controllers
- Micronaut Application
- Micronaut Data