我不明白为什么在下面的最小项目中我WebApplicationInitializer
在 Eclipse 和 IntelliJ 中运行测试时发现了 Spring 接口的实现,但在使用 Maven ( mvn clean test
) 时却没有。
使用 Eclipse 和 IntellIJ 我看到了INFO: Spring WebApplicationInitializers detected on classpath: [com.example.pack.DummyInitializer@26d678a4]
随着mvn clean test
我看到INFO: No Spring WebApplicationInitializer types detected on classpath
。
在测试中,我启动了一个嵌入式 Tomcat:
String pathToWebXML = new File("src/main/webapp/").getAbsolutePath();
tomcat = new Tomcat();
tomcat.setBaseDir("embedded_tomcat");
tomcat.setPort(0);
tomcat.addWebapp("", pathToWebXML);
tomcat.start();
web.xml
引用了一个实现,ServletContextListener
它创建了一个新的(和空的)AnnotationConfigWebApplicationContext
。
我将示例项目上传到 GitHub:https ://github.com/C-Otto/webapplicationinitializer