public interface ContextLoader
application context
for an integration test managed by the Spring TestContext Framework.
Note: as of Spring 3.1, implement SmartContextLoader
instead
of this interface in order to provide support for annotated classes, active
bean definition profiles, and application context initializers.
Clients of a ContextLoader should call
processLocations()
prior to
calling loadContext()
in case the
ContextLoader provides custom support for modifying or generating locations.
The results of processLocations()
should then be supplied to loadContext()
.
Concrete implementations must provide a public
no-args constructor.
Spring provides the following out-of-the-box implementations:
SmartContextLoader
,
AnnotationConfigContextLoader
Modifier and Type | Method and Description |
---|---|
ApplicationContext |
loadContext(String... locations)
Loads a new
context based on the supplied
locations , configures the context, and finally returns
the context in fully refreshed state. |
String[] |
processLocations(Class<?> clazz,
String... locations)
Processes application context resource locations for a specified class.
|
String[] processLocations(Class<?> clazz, String... locations)
Concrete implementations may choose to modify the supplied locations, generate new locations, or simply return the supplied locations unchanged.
clazz
- the class with which the locations are associated: used to
determine how to process the supplied locationslocations
- the unmodified locations to use for loading the
application context (can be null
or empty)ApplicationContext loadContext(String... locations) throws Exception
context
based on the supplied
locations
, configures the context, and finally returns
the context in fully refreshed state.
Configuration locations are generally considered to be classpath resources by default.
Concrete implementations should register annotation configuration
processors with bean factories of application
contexts
loaded by this ContextLoader. Beans will therefore automatically
be candidates for annotation-based dependency injection using
@Autowired
,
@Resource
, and
@Inject
.
Any ApplicationContext loaded by a ContextLoader must register a JVM shutdown hook for itself. Unless the context gets closed early, all context instances will be automatically closed on JVM shutdown. This allows for freeing external resources held by beans within the context, e.g. temporary files.
locations
- the resource locations to use to load the application contextException
- if context loading failed