Pois é meus amigos, recentemente ( março de 2021 ), foi lançado o Spring Native na versão experimental ou seja… BETA
– tá mas que diabos seria o spring native?
De forma resumida:
O Spring Native faz com que os projetos em Spring tenham suporte oficial para compilar aplicativos Spring para imagens nativas com GraalVM. 📦
Quarkus, Micronaut, Helidon… são frameworks java que já possuíam suporte para trabalhar de forma nativa, mas o Spring ainda não.
Com isso o Spring tem ganho de performance, diminuição de tempo de inicialização e uso de memória ao executar uma aplicação. 📈
O Spring Native permite que os desenvolvedores gerem uma imagem de contêiner otimizada com uma camada de sistema operacional mínima e um pequeno executável nativo com apenas os bits necessários da JDK, Spring e as dependências necessárias em um aplicativo.
📌 Exemplo: Se criarmos uma imagem que tenha o Spring Native, Spring Boot, Spring MVC, Spring Data, Algum apache e a JDK, o start da aplicação é MUITO RÁPIDO.
Spring Native oferece suporte às linguagens de programação Java e Kotlin.
Situações em que Spring Native pode ser uma boa escolha incluem:
- ✔️Aplicativos de computação sem servidor com Spring Cloud Function.
- ✔️Microsserviços Spring.
- ✔️Trabalhar com plataformas Kubernetes, como VMware Tanzu.
🛑Mas calma lá tá?
Aplicações com execuções a longo prazo… a JVM ainda faz mais sentido que o uso do Spring Native, pois a compilação da JVM em tempo de execução nestes casos consegue entregar mais performance.