0

我正在尝试使用 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, "/*");
    }

}
4

1 回答 1

0

你俩都是正确的@The Head Rush@Aeseir我错过了rootContext.register(Appconfig.class)以及@ComponentScan。我什至可以进一步分享我的知识:使用 Java Conf 而不是 xml 配置 Spring Wicket :)

于 2014-11-19T21:41:18.693 回答