@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration
@Configuration. Can be used as an alternative to the Spring's standard
@Configurationannotation so that configuration can be found automatically (for example in tests).
Application should only ever include one
most idiomatic Spring Boot applications will inherit it from
@AliasFor(annotation=org.springframework.context.annotation.Configuration.class) public abstract boolean proxyBeanMethods
@Beanmethods should get proxied in order to enforce bean lifecycle behavior, e.g. to return shared singleton bean instances even in case of direct
@Beanmethod calls in user code. This feature requires method interception, implemented through a runtime-generated CGLIB subclass which comes with limitations such as the configuration class and its methods not being allowed to declare
The default is
true, allowing for 'inter-bean references' within the
configuration class as well as for external calls to this configuration's
@Bean methods, e.g. from another configuration class. If this is not needed
since each of this particular configuration's
@Bean methods is
self-contained and designed as a plain factory method for container use, switch
this flag to
false in order to avoid CGLIB subclass processing.
Turning off bean method interception effectively processes
individually like when declared on non-
@Configuration classes, a.k.a.
"@Bean Lite Mode" (see
@Bean's javadoc). It is therefore behaviorally
equivalent to removing the