我正在尝试使用 Spring 4.1 和 Wicket 6.18 设置 Web 应用程序。我想使用完整的代码方法。我有两个用@Configuration
和注释的测试类@Bean
。我希望当我在 Tomcat 中启动我的应用程序时发现它们,但除非我手动扫描我自定义的基本包,否则它不起作用WebApplicationInitialzer
。通过手动,我的意思是调用AnnotationConfigWebApplicationContext.scan()。
我浏览了很多关于基于代码的方法的教程,但没有看到他们这样做。即使在官方春季文档中,他们也不会这样做。
我做错了什么,我需要这个以及如何纠正它?
我的自定义WebApplicationInitialzer
看起来像这样:
public class WebAppInitializer implements WebApplicationInitializer {
private static final Logger logger = LoggerFactory.getLogger(WebAppInitializer.class);
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
container.addListener(new ContextLoaderListener(context));
context.scan("pl.myhouse"); //why do i need this???
FilterRegistration filter = container.addFilter("wicket.myproject", WicketFilter.class);
filter.setInitParameter("applicationClassName", WicketApplication.class.getName());
filter.setInitParameter(WicketFilter.FILTER_MAPPING_PARAM, "/*");
filter.addMappingForUrlPatterns(null, false, "/*");
}
}