Spring framework использует, пожалуй, весь набор динамических свойств Java: Spring Boot приложения грузятся своим загрузчиком классов, повсеместно используются reflection, порождение и загрузка Java байт-кода на лету и т.д.
С другой стороны, в мире микросервисов набирает популярность статическая AOT компиляция Java приложений, для решения проблем быстрого старта, предсказуемой производительности, мгновенного достижения пиковой производительности. Становится интересно: может ли динамичность Spring framework ужиться со статической компиляцией?
Ответ — да, может. В этом докладе я на примере поддержки Spring Boot приложений в AOT-центричной JVM Excelsior JET покажу, как динамические свойства Java, используемые в Spring framework, могут работать совместно с AOT-порожденным машинным кодом.