1.在web.xml中配置两个容器spring容器(ContextLoaderListener)和springmvc容器(DispatcherServlet);
spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
springmvc容器
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/spring/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
2.两个配置文件spring-config.xml 和spring-servlet.xml表示两个容器,里面配置的bean互不干扰,所以controller和service要分别扫描;
controller需要配置在springmvc容器中(spring-servlet.xml)
<context:component-scan base-package="com.ambitious.controller.*"/>
service,dao需要配置在spring容器中(spring-config.xml )
<context:component-scan base-package="com.ambitious.*"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
注意:必须都要配置,不能配置一处管两个容器,需要各自配置各自的!!!