【发布时间】:2011-11-09 20:29:44
【问题描述】:
在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 的参数之一是最好的方法吗?这个对吗?有一个更好的方法吗?
【问题讨论】:
-
动态是什么意思。 Annotation 是静态的,它在运行时不会改变?
-
显然这是我要解决的问题。我想动态地将新上下文添加到弹簧加载的文件列表中。
-
但是那个注解是什么意思呢?什么应该触发“现在添加上下文 x”?
-
@Ralph 一切都在 spring 和 junit 环境中执行。我在问是否有一个句柄或回调可以控制它。什么应该触发回调是我的问题。
-
您能否提供一个描述其背后原因的实际需求?我相信你正在尝试做的事情可以在不改变 applicationContext 的胆量的情况下得到解决。