Esta nueva versión mejora significativamente la experiencia del desarrollador con la disponibilidad de Micronaut Launch, una CLI de Micronaut más rápida y completamente renovada, un nuevo complemento de Maven y una actualización a la versión de Gradle. Ahora es compatible con Java 14, aplicaciones escritas en Groovy 3 y marcos reactivos que incluyen RxJava 3 y Reactor. Las capacidades sin servidor se han ampliado al agregar compatibilidad con Azure Functions y Cloud Functions de Google. También proporciona soporte para HTTP/2 y Servlets y un diseño de seguridad renovado. Finalmente, la nueva versión proporciona un rendimiento mejorado con una integración más profunda con GraalVM, consumo de memoria optimizado y tiempos de inicio mejorados hasta en un 20% en promedio en todo el marco.
Micronaut 2.0 incluye un nuevo servicio de inicio, Micronaut Launch, que ayuda a crear un andamio en las aplicaciones basadas en Micronaut. Disponible tanto como una herramienta basada en navegador como como una API REST, Launch ayuda a construir rápidamente y generar aplicaciones basadas en Micronaut. También ofrece una vista previa de la aplicación generada. La CLI de Micronaut tradicional ha pasado por un rediseño completo con un enfoque en el rendimiento y la eficiencia utilizando imágenes nativas de GraalVM. Micronaut Launch, un wrapper de Micronaut CLI, garantiza la interoperabilidad.
EL soporte de Maven se ha actualizado para traerlo a la paridad de características con el conjunto de características actual de Gradle. Se proporciona un nuevo complemento de Maven (mn: run) que ayuda a ejecutar aplicaciones Micronaut a través de Maven con capacidades de recompilación y reinicio automáticos. Además de esto, los proyectos de Maven heredan de un nuevo POM padre que configura la gestión de dependencias de forma más limpia.
La versión de Gradle se ha actualizado a 6.5, lo que brinda soporte de compilación incremental para proyectos de Micronaut 2.0. Básicamente, esto significa que Micronaut no tiene que ejecutar los procesadores de anotaciones completos para cada compilación.
El soporte sin servidor se ha hecho más sólido con la adición de Google Cloud Functions y Azure Functions, al tiempo que se mejora el conjunto de características para AWS Lambda. Micronaut proporciona dos enfoques para ayudar a crear aplicaciones sin servidor. El primer enfoque define una aplicación Micronaut tradicional y le agrega la característica de función sin servidor correspondiente (por ejemplo, funciones en la nube, funciones de Azure o lambdas). Dependiendo de la plataforma sin servidor elegida, Micronaut proporcionará la infraestructura de plomería necesaria para enrutar las solicitudes de funciones a la aplicación.
El segundo enfoque define un tipo de aplicación de "función sin servidor" que permite a los desarrolladores escribir código de función directo de bajo nivel específico para la función de función sin servidor elegida (p. Ej., Funciones en segundo plano de Google Cloud que se suscriben a mensajes pub-sub).
A continuación se muestra un ejemplo de una función sin servidor de bajo nivel escrita en Micronaut para la plataforma sin servidor de funciones de Google Cloud.
public class Function extends GoogleFunctionInitializer
implements BackgroundFunction<PubSubMessage> {
@Inject LoggingService loggingService;
@Override
public void accept(PubSubMessage message, Context context) {
loggingService.logMessage(message);
}
}
class PubSubMessage {
String data;
Map<String, String> attributes;
String messageId;
String publishTime;
}
mn> create-app demo-servlet --features jetty-server
$ cd demo-servlet
$ ./gradlew run
org.eclipse.jetty.server.Server - Started @1219ms
io.micronaut.runtime.Micronaut - Startup completed in 615ms. Server Running: http://localhost:8080/
Micronaut 2.0 agrega soporte para HTTP / 2 y se puede habilitar usando un simple cambio en el archivo application.yml para una aplicación Micronaut. Este soporte está disponible actualmente solo para el servidor HTTP y el cliente basados en Netty.
La configuración del lado del servidor se muestra a continuación.
micronaut:
ssl:
build-self-signed: true
application:
name: http2Demo
server:
http-version: http_2_0
El soporte para imágenes nativas de GraalVM se ha movido del estado experimental y ahora tiene soporte de primera clase y ampliado en todo el marco, lo que solidifica aún más el compromiso con GraalVM. Esto incluye la configuración automática de recursos estáticos, controladores JDBC, Hibernate, Flyway, AWS SDK 2 y otras áreas.
Dejo link : https://www.infoq.com/news/2020/08/micronaut-v2/