原因:web 配置文件引入了两个配置文件,一个是 spring 的,一个是 spring mvc 的,spring 配置文件下配置了包扫描,而 spring mvc 配置文件没有配置,在 spring mvc 上填上就好了
| |
| <context-param> |
| <param-name>contextConfigLocation</param-name> |
| <param-value> |
| classpath*:spring/spring-context.xml |
| </param-value> |
| </context-param> |
| |
| <servlet> |
| <description>spring mvc servlet</description> |
| <servlet-name>springMvc</servlet-name> |
| <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> |
| <init-param> |
| <description>spring mvc 配置文件</description> |
| <param-name>contextConfigLocation</param-name> |
| <param-value> |
| classpath*:spring/spring-mvc.xml |
| </param-value> |
| </init-param> |
| <load-on-startup>1</load-on-startup> |
| </servlet> |
| <servlet-mapping> |
| <servlet-name>springMvc</servlet-name> |
| <url-pattern>/</url-pattern> |
| </servlet-mapping> |
spring-context.xml 中配置的包扫描
| |
| <context:component-scan base-package="com.example"> |
| <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> |
| </context:component-scan> |
spring-mvc.xml 中配置的包扫描
| |
| <context:component-scan base-package="com.example"> |
| <context:include-filter type="annotation" |
| expression="org.springframework.stereotype.Controller" /> |
| <context:include-filter type="annotation" |
| expression="org.springframework.web.bind.annotation.ControllerAdvice" /> |
| <context:exclude-filter type="annotation" |
| expression="org.springframework.stereotype.Service" /> |
| </context:component-scan> |