really easy for me to try. Micronaut @Controller public class Application { public static void main(String[] args) { Micronaut.run(Application.class); } @Get("/hello/{name}") public String hello(String name) { return "Hello " + name; } }
One server for one app with VMs 3. PaaS, 12 Factor App & Container 4. Embedded Tomcat & executable JAR by Spring Boot 5. Kubernetes & Microservices Java 10 years around me
Inspired by Spring & Grails • First class support for Reactive based on Netty • Ahead of Time Compilation • Support for Java, Kotlin, Groovy • Support for GraalVM Native Image https://micronaut.io/ Micronaut
This executable does not run on the Java VM • but includes necessary components from “Substrate VM” • The resulting program has faster startup time • and lower runtime memory overhead https://www.graalvm.org/docs/reference-manual/aot-compilation/ GraalVM Native Image (early adopter)
public Single<String> index(@Size(min = 10) String name) { return Single.just("Hello " + name); } } "message": "name: size must be between 10 and 2147483647"
Reactive based on Netty Fast startup & low memory footprint • DI & AOP with AOT Compilation GraalVM Native Image Support • makes our app start in a few hundreds of milliseconds Summary