Annotation Interface ActiveProfiles
ActiveProfiles
is a class-level annotation that is used to declare
which active bean definition profiles should be used when loading
an ApplicationContext
for test classes.
This annotation may be used as a meta-annotation to create custom composed annotations.
As of Spring Framework 5.3, this annotation will be inherited from an
enclosing test class by default. See
@NestedTestConfiguration
for details.
- Since:
- 3.1
- Author:
- Sam Brannen
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
Whether bean definition profiles from superclasses and enclosing classes should be inherited.String[]
The bean definition profiles to activate.Class<? extends ActiveProfilesResolver>
The type ofActiveProfilesResolver
to use for resolving the active bean definition profiles programmatically.String[]
Alias forprofiles()
.
-
Element Details
-
value
Alias forprofiles()
.This attribute may not be used in conjunction with
profiles()
, but it may be used instead ofprofiles()
.- Default:
- {}
-
profiles
The bean definition profiles to activate.This attribute may not be used in conjunction with
value()
, but it may be used instead ofvalue()
.- Default:
- {}
-
resolver
Class<? extends ActiveProfilesResolver> resolverThe type ofActiveProfilesResolver
to use for resolving the active bean definition profiles programmatically.- Since:
- 4.0
- See Also:
- Default:
- org.springframework.test.context.ActiveProfilesResolver.class
-
inheritProfiles
boolean inheritProfilesWhether bean definition profiles from superclasses and enclosing classes should be inherited.The default value is
true
, which means that a test class will inherit bean definition profiles defined by a test superclass or enclosing class. Specifically, the bean definition profiles for a test class will be appended to the list of bean definition profiles defined by a test superclass or enclosing class. Thus, subclasses and nested classes have the option of extending the list of bean definition profiles.If
inheritProfiles
is set tofalse
, the bean definition profiles for the test class will shadow and effectively replace any bean definition profiles defined by a superclass or enclosing class.In the following example, the
ApplicationContext
forBaseTest
will be loaded using only the "base" bean definition profile; beans defined in the "extended" profile will therefore not be loaded. In contrast, theApplicationContext
forExtendedTest
will be loaded using the "base" and "extended" bean definition profiles.@ActiveProfiles("base") @ContextConfiguration public class BaseTest { // ... } @ActiveProfiles("extended") @ContextConfiguration public class ExtendedTest extends BaseTest { // ... }
Note:
@ActiveProfiles
can be used when loading anApplicationContext
from path-based resource locations or annotated classes.- See Also:
- Default:
- true
-