[英]Java Spring 4 - why i need manually scan for beans in WebApplicationInitializer
我正在尝试使用Spring 4.1和Wicket 6.18设置Web应用程序。 我想使用完整的代码方法。 我有两个用@Configuration
和@Bean
注释的测试类。 我希望在Tomcat中启动我的应用程序时发现它们,但是除非我在自定义WebApplicationInitialzer
手动扫描基本软件包,否则它不起作用。 我的意思是手动调用AnnotationConfigWebApplicationContext.scan() 。
我浏览了很多有关基于代码的方法的教程,但没有看到他们这样做。 即使在正式的Spring文档中,他们也不会这样做。
我在做错什么我需要这个以及如何纠正它?
我的自定义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, "/*");
}
}
@Aeseir
@The Head Rush
和@Aeseir
都是正确的。 我缺少rootContext.register(Appconfig.class)
和@ComponentScan
。 我什至可以进一步分享我的知识: 使用Java Conf而不是xml配置Spring Wicket :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.