SPRING-MVC 启动重复加载两次映射

如下web.xml示例:

part1.用spring的配置加载contextConfigLocation

2.配置spring-mvc的contextConfigLocation

 

	
		contextConfigLocation
		
			classpath:spring-*.xml
		
	
---------------------------------------------------------------------------
	
		spring-mvc
		org.springframework.web.servlet.DispatcherServlet
		
		
			contextConfigLocation
			
			/WEB-INF/classes/spring-mvc.xml
		
		1
		true
	

 

非常不幸,part1+2不能互相替代, 并且,如果两部分的xml重复命中,比如spring-*,就会导致springmvc的映射,scan重复加载两次。从启动日志和启动时长可以看到。 补充:重复加载还会导致配置的task,schadule任务重复执行!

 

所以,合理的做法是,把spring-mvc的定义单独摘出来定义在web容器启动的时候加载,名称也换成servlet-mvc.xml避免被spring重复加载, 而在spring的core xml定义中,不要出现mvc的东东

	
		spring-mvc
		org.springframework.web.servlet.DispatcherServlet
		
		
			contextConfigLocation
			
			/WEB-INF/classes/servlet-mvc.xml
		
		1
		true
	

 

	
	

	
	

    
    

	
	
	    
	    	
	        
	    
	    
	    
	    	
	    	
	    	
	    	
	    	
	    	
	    	

	        
	    
	    
	

 

你可能感兴趣的:(SPRING-MVC 启动重复加载两次映射)