org.springframework.boot

Annotation Type SpringBootConfiguration



  • @Target(value=TYPE)
     @Retention(value=RUNTIME)
     @Documented
     @Configuration(proxyBeanMethods=false)
    public @interface SpringBootConfiguration
    Indicates that a class provides Spring Boot application @Configuration. Can be used as an alternative to the Spring's standard @Configuration annotation so that configuration can be found automatically (for example in tests).

    Application should only ever include one @SpringBootConfiguration and most idiomatic Spring Boot applications will inherit it from @SpringBootApplication.

    Since:
    1.4.0
    Author:
    Phillip Webb, Andy Wilkinson
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element and Description
      boolean proxyBeanMethods
      Specify whether @Bean methods should get proxied in order to enforce bean lifecycle behavior, e.g.
    • Element Detail

      • proxyBeanMethods

        @AliasFor(annotation=org.springframework.context.annotation.Configuration.class)
        public abstract boolean proxyBeanMethods
        Specify whether @Bean methods should get proxied in order to enforce bean lifecycle behavior, e.g. to return shared singleton bean instances even in case of direct @Bean method 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 final.

        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 @Bean methods 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 @Configuration stereotype.

        Returns:
        whether to proxy @Bean methods
        Since:
        2.2
        Default:
        true

Copyright © 2019 Pivotal Software, Inc.. All rights reserved.