java – 在运行时动态添加spring上下文配置?

spring / junit中,您可以使用@ContextConfiguration加载应用程序上下文文件,例如

@ContextConfiguration({"classpath:a.xml","classpath:b.xml"})

我有一个要求,如果我在测试类上看到一个特殊的注释,那么动态添加一个XML上下文文件.例如:

@ContextConfiguration({"classpath:a.xml","classpath:b.xml"})
@MySpecialAnnotation 
class MyTest{
...
}

在上面的例子中,我会查找@MySpecialAnnotation并添加special-context.xml.做这个的最好方式是什么?我已经看了一段时间,似乎是对我自己的ContextLoader进行子类化,这是@ContextConfiguration的参数之一是最好的方法吗?它是否正确?有一个更好的方法吗?

最佳答案
也许您可以利用Spring 3.1 Profiles来实现这一目标.

如果将special-context.xml中定义的bean放入名为special的配置文件中,则可以使用类上的@Profile(“special”)激活特殊配置文件.

这将完全消除对您的特殊注释的需要.

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...