org.springframework.test.context
Annotation Type ActiveProfiles


@Documented
@Inherited
@Retention(value=RUNTIME)
@Target(value=TYPE)
public @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.

Since:
3.1
Author:
Sam Brannen
See Also:
SmartContextLoader, MergedContextConfiguration, ContextConfiguration, ApplicationContext, Profile

Optional Element Summary
 boolean inheritProfiles
          Whether or not bean definition profiles from superclasses should be inherited.
 String[] profiles
          The bean definition profiles to activate.
 String[] value
          Alias for profiles().
 

value

public abstract String[] value
Alias for profiles().

This attribute may not be used in conjunction with profiles(), but it may be used instead of profiles().

Default:
{}

profiles

public abstract String[] profiles
The bean definition profiles to activate.

This attribute may not be used in conjunction with value(), but it may be used instead of value().

Default:
{}

inheritProfiles

public abstract boolean inheritProfiles
Whether or not bean definition profiles from superclasses should be inherited.

The default value is true, which means that an annotated class will inherit bean definition profiles defined by an annotated superclass. Specifically, the bean definition profiles for an annotated class will be appended to the list of bean definition profiles defined by an annotated superclass. Thus, subclasses have the option of extending the list of bean definition profiles.

If inheritProfiles is set to false, the bean definition profiles for the annotated class will shadow and effectively replace any bean definition profiles defined by a superclass.

In the following example, the ApplicationContext for BaseTest will be loaded using only the "base" bean definition profile; beans defined in the "extended" profile will therefore not be loaded. In contrast, the ApplicationContext for ExtendedTest 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 an ApplicationContext from path-based resource locations or configuration classes.

See Also:
ContextConfiguration.locations(), ContextConfiguration.classes(), ContextConfiguration.inheritLocations()
Default:
true