@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
(
excludeFilters
={
@Filter
(
type
=
CUSTOM
,
classes
=
TypeExcludeFilter.class
),})
public @interface
SpringBootApplication
Since:
1.2.0
Author:
Phillip Webb, Stephane Nicoll, Andy Wilkinson
Exclude specific auto-configuration classes such that they will never be applied.
Exclude specific auto-configuration class names such that they will never be
applied.
The
BeanNameGenerator
class to be used for naming detected components
within the Spring container.
boolean
Specify whether
@Bean
methods should get proxied in order to enforce
bean lifecycle behavior, e.g.
Type-safe alternative to
scanBasePackages()
for specifying the packages to
scan for annotated components.
Base packages to scan for annotated components.
Exclude specific auto-configuration classes such that they will never be applied.
Returns:
the classes to exclude
Default:
excludeName
Exclude specific auto-configuration class names such that they will never be
applied.
Returns:
the class names to exclude
Since:
1.3.0
Default:
scanBasePackages
Base packages to scan for annotated components. Use
scanBasePackageClasses()
for a type-safe alternative to String-based package names.
Note:
this setting is an alias for
@ComponentScan
only. It has no effect on
@Entity
scanning or Spring Data
Repository
scanning. For those you should add
@EntityScan
and
@Enable...Repositories
annotations.
Returns:
base packages to scan
Since:
1.3.0
Default:
scanBasePackageClasses
Type-safe alternative to
scanBasePackages()
for specifying the packages to
scan for annotated components. The package of each class specified will be scanned.
Consider creating a special no-op marker class or interface in each package that
serves no purpose other than being referenced by this attribute.
Note:
this setting is an alias for
@ComponentScan
only. It has no effect on
@Entity
scanning or Spring Data
Repository
scanning. For those you should add
@EntityScan
and
@Enable...Repositories
annotations.
Returns:
base packages to scan
Since:
1.3.0
Default:
nameGenerator
The
BeanNameGenerator
class to be used for naming detected components
within the Spring container.
The default value of the
BeanNameGenerator
interface itself indicates that
the scanner used to process this
@SpringBootApplication
annotation should
use its inherited bean name generator, e.g. the default
AnnotationBeanNameGenerator
or any custom instance supplied to the
application context at bootstrap time.
Returns:
BeanNameGenerator
to use
Since:
2.3.0
See Also:
SpringApplication.setBeanNameGenerator(BeanNameGenerator)
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:
Default: