Many Spring annotations require runtime hints registration so that it's visible at runtime and the synthetized annotation generation is supported. This is usually done using RuntimeHintsUtils.registerAnnotation. Currently, running a Spring Boot application with the latest GraalVM version fails with:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'lifecycleProcessor': Unsatisfied dependency expressed through method 'defaultLifecycleProcessor' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties': Initialization of bean failed; nested exception is com.oracle.svm.core.jdk.UnsupportedFeatureError: Proxy class defined by interfaces [interface org.springframework.boot.context.properties.ConfigurationProperties, interface org.springframework.core.annotation.SynthesizedAnnotation] not found. Generating proxy classes at runtime is not supported. Proxy classes need to be defined at image build time by specifying the list of interfaces that they implement. To define proxy classes use -H:DynamicProxyConfigurationFiles=<comma-separated-config-files> and -H:DynamicProxyConfigurationResources=<comma-separated-config-resources> options.
at org.springframework.beans.factory.aot.AutowiredInstantiationArgumentsResolver.resolveArgument(AutowiredInstantiationArgumentsResolver.java:319) ~[na:na]
at org.springframework.beans.factory.aot.AutowiredInstantiationArgumentsResolver.resolveArguments(AutowiredInstantiationArgumentsResolver.java:232) ~[na:na]
We should register hints for this annotation in ConfigurationPropertiesBeanFactoryInitializationAotProcessor.