Spring MVC - Bohnen zweimal geladen

Spring MVC - Bohnen zweimal geladen

Eine Spring MVC-Webanwendung, bei der festgestellt wurde, dass alle Spring-Beans zweimal geladen werden !?

package com.example.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");;

    }

}

Während des Programmstarts:

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. Federkonfiguration

Hier ist die Spring MVC Konfiguration.

web.xml



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

    
        mvc-dispatcher
        /
    

    
        
            org.springframework.web.context.ContextLoaderListener
        
    

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

mvc-dispatcher-servlet.xml



    
    

2. Lösung

Lesen Sie dieseSpring DispatcherServlet reference, um zu verstehen, wie Spring die XML-Datei aufnimmt:

Bei der Initialisierung eines DispatcherServlets sucht Spring MVC nach einer Datei mit dem Namen [Servlet-Name] -servlet.xml im Verzeichnis WEB-INF Ihrer Webanwendung und ...

In der Konfiguration über Frühling:

  1. Das Servletmvc-dispatcher lädtmvc-dispatcher-servlet.xml

  2. Und der ListenerContextLoaderListener lädt erneut`mvc-dispatcher-servlet.xml`

Um dies zu beheben, benennen Sie einfach den Servlet-Namenmvc-dispatcher in etwas anderes um.

web.xml



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

    
        hello-dispatcher
        /
    

Kurz gesagt, stellen Sie sicher, dass Spring die Spring-XML-Konfiguration nicht zweimal aufnimmt.