我有一个jar项目,包含所有与Hibernate相关的对象(实体,daos,persistence.xmls)。这是一个Maven项目。它还包含两个context.xml文件(一个用于Tomcat,另一个用于JUnit测试)。
我的所有JUnit测试都有一个祖先类:
@ContextConfiguration(
loader = GenericXmlContextLoader.class,
locations = { TestAncestor.DEFAULT_CONFIGURATION_CONTEXT } )
@EnableTransactionManagement
@RunWith(SpringJUnit4ClassRunner.class)
@SuppressWarnings("serial")
public abstract class TestAncestor
implements Serializable {
public static final String DEFAULT_CONFIGURATION_CONTEXT = "classpath*:context-test.xml";
}
引用的context-test.xml
文件包含创建DB / JPA感知上下文所需的所有必需对象(DataSource,EMF,EM等)。
但@ContextConfiguration
注释完全被XML忽略了。我怎么知道?简单:我不断得到的错误是无法找到注入点的X类;并且,我在.xml文件中添加了一个故意的拼写错误,导致运行时解析错误,但它永远不会出现。
为什么我的XML文件被忽略?不,我不能使用@Configuration和相关的注释或Spring Boot。