Supporting Spring Applications with GraalVM Native Image

A Guide to Running Spring Apps in Native Environment

Introduction

  • Spring applications and GraalVM native image
  • Overview of presentation content
  • Benefits of using GraalVM native image
  • Challenges for framework developers

Why GraalVM Native Image?

  • Highly requested feature
  • Unique runtime characteristics of GraalVM
  • Improved memory efficiency and startup time
  • Predictable start performance

Strategy for Framework Support

  • Need for framework support in GraalVM native image
  • Challenges faced by framework developers
  • Approach of Iot processing in Spring
  • Expected scope, limitations, and considerations

Spring Native Project

  • Overview of Spring Native project
  • Evolution of the project and community feedback
  • Achieving first-class support in Spring
  • Retiring the Spring Native experimental project

How Spring Supports GraalVM

  • Challenges in supporting features in a native image
  • Eligible metadata and hint contributions
  • Combining analysis and code generation
  • Streamlining application compilation and packaging

Testing and Troubleshooting

  • Testing existing Spring applications in native image
  • Running applications in Ao mode
  • Running test suites in native image
  • Identifying and addressing issues

Adding Reflection Support

  • Using runtime hint registration
  • Registering constructors and methods
  • Contributing metadata for resource loading
  • Providing metadata for proxies

Conclusion

  • Summary of the presentation
  • Benefits and considerations of using GraalVM native image
  • Ongoing work and future developments