Spring MVC Beans Loaded Twice Problem

05-06-2015

In Spring MVC if you have two separate xml files such as applicationContext.xml and mvc-dispatcher-servlet.xml, then you must set use-default-filters attribute value to false to disable automatic detection opf classes annotated with @Component, @Repository, @Service or @Controller because these classes will be detected by means of <context:component-scan> element.

applicationContext.xml file

<context:component-scan base-package="com.codesenior.telif.web">
 <context:exclude-filter type="annotation" 
                            expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

  <context:exclude-filter> element exclude Controller classes because these classes are used in Spring MVC. However, applicationContext.xml file should contain core Spring components and mvc-dispatcher-servlet.xml file should contain Spring MVC configurations.

mvc-dispatcher-servlet.xml file

<context:component-scan base-package="com.codesenior.telif.web" use-default-filters="false">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

After this configuration Spring will not detect same classes twice.

© 2019 All rights reserved. Codesenior.COM