Cloud Native 10 min read

How Spring Native Beta Enables Instant Startup and Tiny Containers

Spring Native beta lets Spring applications run as GraalVM native images, offering near‑instant startup, reduced memory usage, and container‑ready executables, while providing Maven/Gradle plugins, AOT transformation, and broad Spring ecosystem support for modern cloud‑native deployments.

macrozheng
macrozheng
macrozheng
How Spring Native Beta Enables Instant Startup and Tiny Containers

Spring team announced Spring Native beta, allowing Spring apps to run as GraalVM native images. Spring Native provides Maven and Gradle plugins and annotations for native configuration.

Native Spring apps can be packaged as standalone executables without a JVM, offering near‑instant startup (<100 ms), peak performance and lower memory usage, though build time is longer.

Simple commands mvn spring-boot:build-image or gradle bootBuildImage generate an optimized container image containing a minimal OS layer and the native executable (≈50 MB).

Typical use cases include serverless with Spring Cloud, cost‑effective microservice hosting, Kubernetes platforms such as VMware Tanzu, and creating optimal container images.

1. Team Collaboration

Spring Native beta results from extensive collaboration across Spring projects (Framework, Boot, Data, Security, Cloud, Initializr) and the GraalVM team to improve native image compatibility and resource consumption.

2. Support Scope

While still experimental, the beta supports a subset of the Spring ecosystem. Projects using supported dependencies can try native compilation; each Spring Boot 2.x patch releases a matching Spring Native version (e.g., 0.9.0 for 2.4.3, 0.9.1 for 2.4.4).

3. start.spring.io Integration

Spring Native support is integrated into start.spring.io and IDEs, allowing easy creation of native‑ready projects without code changes.

After adding the dependency, Maven or Gradle auto‑configures the required plugins. The generated HELP.md lists useful links and flags unsupported native dependencies.

4. Ahead‑of‑Time (AOT) Transformation

Native images fix the classpath at build time, eliminating lazy loading. Spring AOT plugins generate GraalVM configuration (reflection, resources, proxies) based on annotations such as @Controller, producing reflect-config.json, resource-config.json, and native-image.properties. @NativeHint(...) Developers can also annotate their own @Configuration or @SpringBootApplication classes with native hints to customize the generated configuration.

5. Conclusion

Spring’s native strategy has two pillars: making the Spring stack native‑friendly without breaking existing apps, and collaborating with GraalVM to align the Java ecosystem with native platform characteristics.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

javaMicroservicesgraalvmAoTSpring Nativecontainer images
macrozheng
Written by

macrozheng

Dedicated to Java tech sharing and dissecting top open-source projects. Topics include Spring Boot, Spring Cloud, Docker, Kubernetes and more. Author’s GitHub project “mall” has 50K+ stars.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.