Рубрики
Без рубрики

Пружинные MVC–бобы загружены дважды

– Пружинный MVC – Бобы загружены дважды

Автор оригинала: mkyong.

Веб-приложение Spring MVC, заметило, что все компоненты Spring загружаются дважды!?

package com.mkyong.config.db;

@Configuration
public class MongoDevConfig {

	private final static Logger logger = LoggerFactory.getLogger(MongoDevConfig.class);

	@Bean
	MongoDbFactory mongoDbFactory() throws Exception {

		logger.debug("Init...... MongoDbFactory() in production mode!");
		//...
		return new new SimpleMongoDbFactory(mongo, "db");;
		
	}

}

Во время запуска Приложения:

2015-03-05 17:52:32 DEBUG c.m.config.MongoLiveConfig - Init...... MongoDbFactory() in production mode!
2015-03-05 17:52:32 DEBUG c.m.config.MongoLiveConfig - Init...... MongoDbFactory() in production mode!

1. Конфигурация пружины

Вот конфигурация Spring MVC.



	
		mvc-dispatcher
		
			org.springframework.web.servlet.DispatcherServlet
		
		1
	

	
		mvc-dispatcher
		/
	

	
		
			org.springframework.web.context.ContextLoaderListener
		
	

	
		contextConfigLocation
		/WEB-INF/mvc-dispatcher-servlet.xml
	




 	
	


2. Решение

Прочитайте эту ссылку Spring DispatcherServlet , чтобы понять, как Spring получает XML-файл:

После инициализации DispatcherServlet Spring MVC ищет файл с именем [имя сервлета] -servlet.xml в каталоге WEB-INF вашего веб-приложения и …

В приведенной выше конфигурации пружины:

  1. Сервлет mvc-диспетчер загрузится mvc-dispatcher-servlet.xml
  2. И слушатель ContextLoaderListener загрузит mvc-dispatcher-servlet.xml снова

Чтобы исправить это, просто переименуйте имя сервлета mvc-dispatcher во что-то другое.



	
	
		hello-dispatcher
		
			org.springframework.web.servlet.DispatcherServlet
		
		1
	

	
		hello-dispatcher
		/
	


Короче говоря, убедитесь, что Spring не будет использовать конфигурацию Spring XML дважды.

Рекомендации

  1. Весенний ввод-вывод: DispatcherServlet
  2. StackOverflow: весенний веб, безопасность + web.xml + диспетчер mvc + Компонент создается дважды

Оригинал: “https://mkyong.com/spring-mvc/spring-mvc-beans-loaded-twice/”