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

.

<code>@NativeHint(...)</code>

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.

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

login 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.