我正在使用100%代码配置方法为spring 4 Web应用程序构建应用程序。以下是我的网络配置类。
public class WebAppInitializer extends Log4jServletContainerInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
super.onStartup(null, container);
// Create the 'root' Spring application context
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(MyAppContext.class);
// Manage the lifecycle of the root application context
container.addListener(new ContextLoaderListener(rootContext));
// Create the dispatcher servlet's Spring application context
AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext();
webContext.register(MyServletContext.class);
// Register and map the dispatcher servlet
ServletRegistration.Dynamic dynamic = container.addServlet("dispatcher", new DispatcherServlet(webContext));
dynamic.setLoadOnStartup(1);
dynamic.addMapping("/api/*");
}
}
问题 -
一个。我的春豆正在初始化两次
湾每当我在我的资源中添加logj2.xml(使用maven)时,我的bean创建就会失败。
我是新手,请帮助我。
Log4J - 2.5,Tomcat - 8.0.32
谢谢!
答案 0 :(得分:0)
我设法解决了这个问题。这不是WebApplInitializer的问题,而是Spring Java配置文件。我正在为ApplicationContext和ServletContext维护单独的配置。在ApplicationContext中,使用
max_colors
做了这个伎俩。
在servlet上下文中,我使用了 -
@ComponentScan(value = "com.application.module",
excludeFilters = {@ComponentScan.Filter(value = {Configuration.class})})