@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Configuration @TestComponent public @interface TestConfiguration
@Configuration
that can be used to define additional beans or
customizations for a test. Unlike regular @Configuration
classes the use of
@TestConfiguration
does not prevent auto-detection of
@SpringBootConfiguration
.SpringBootTestContextBootstrapper
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. |
String |
value
Explicitly specify the name of the Spring bean definition associated with this
Configuration class.
|
@AliasFor(annotation=org.springframework.context.annotation.Configuration.class) public abstract String value
Configuration.value()
for details.@AliasFor(annotation=org.springframework.context.annotation.Configuration.class) public abstract boolean proxyBeanMethods
@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.
@Bean
methodsCopyright © 2021 Pivotal Software, Inc.. All rights reserved.