Я пытаюсь настроить веб-приложение с помощью Spring 4.1 и Wicket 6.18. Я хочу использовать подход полного кода. У меня есть два тестовых класса с аннотациями @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, "/*");
}
}
rootContext.register(AppConfig.class);
- person The Head Rush   schedule 14.11.2014context.register()
и @ComponentScan и удалилcontext.scan()
, и это работает :) - person Robert Niestroj   schedule 14.11.2014