注释类型 ActiveProfiles
@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited public @interface ActiveProfiles
ActiveProfiles
is a class-level annotation that is used to declare which active bean definition profiles should be used when loading anApplicationContext
for test classes.As of Spring Framework 4.0, this annotation may be used as a meta-annotation to create custom composed annotations.
- 从以下版本开始:
- 3.1
- 作者:
- Sam Brannen
- 另请参阅:
SmartContextLoader
,MergedContextConfiguration
,ContextConfiguration
,ActiveProfilesResolver
,ApplicationContext
,Profile
可选元素概要
可选元素 修饰符和类型 可选元素 说明 boolean
inheritProfiles
Whether or not bean definition profiles from superclasses should be inherited.String[]
profiles
The bean definition profiles to activate.Class<? extends ActiveProfilesResolver>
resolver
The type ofActiveProfilesResolver
to use for resolving the active bean definition profiles programmatically.String[]
value
Alias forprofiles()
.
元素详细资料
value
@AliasFor("profiles") String[] value
Alias forprofiles()
.This attribute may not be used in conjunction with
profiles()
, but it may be used instead ofprofiles()
.- 默认值:
- {}
resolver
Class<? extends ActiveProfilesResolver> resolver
The type ofActiveProfilesResolver
to use for resolving the active bean definition profiles programmatically.- 从以下版本开始:
- 4.0
- 另请参阅:
ActiveProfilesResolver
- 默认值:
- org.springframework.test.context.ActiveProfilesResolver.class
inheritProfiles
boolean inheritProfiles
Whether or not bean definition profiles from superclasses should be inherited.The default value is
true
, which means that a test class will inherit bean definition profiles defined by a test superclass. Specifically, the bean definition profiles for a test class will be appended to the list of bean definition profiles defined by a test superclass. Thus, subclasses 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.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.- 另请参阅:
ContextConfiguration.locations()
,ContextConfiguration.classes()
,ContextConfiguration.inheritLocations()
- 默认值:
- true