springmvc中找不到页面,进入不到方法,而且不报错

在springmvc配置中,出现了两次进入不到action方法中,并花费了大部分时间去找问题,因此详细记录下相关的配置java

1.配置的位置:spring

applicationContext.xml文件,是必须配置的,也是spring的配置:express

servlet-context.xml文件,是给Tomcat配置的,能够写,也能够不写,可是若是写的话就必定要注意,由于问题基本都会出如今这个配置上mvc

两种写法:app

项目中,在base-package指定的包中有的子包是不含有注解的,因此这些包能够不进行扫描,此时能够指定
<context:exclude-filter>来进行过滤,说明此包不须要被扫描。
Use-dafault-filters=”false”的状况下:<context:exclude-filter>指定的包不进行相应注解的扫描,
<context:include-filter>指定包或其子包进行相应注解的扫描。框架

不扫描@Controller注解

applicationContext.xml.net

<mvc:annotation-driven />
        <context:component-scan base-package="包名">
            <context:exclude-filter type="annotation"
                expression="org.springframework.stereotype.Controller" />    
        </context:component-scan>

servlet-context.xmlcode

<!-- 扫描@Controller注解 -->
<mvc:annotation-driven />
		<context:component-scan base-package="包名">
			<context:include-filter type="annotation"
				expression="org.springframework.stereotype.Controller" />	
		</context:component-scan>

区别在于一个用的是include,一个用的是exclude,component

spring不只扫描了@Controller修饰的javaod ,还扫描了指定包或其子包下有@Service
@Repository注解修饰的java类此时指定的include-filter没有起到做用,只要把use-default-filter设置成
false就能够了。这样就能够避免在base-packeage配置多个包名。xml

第二种写法,我的以为若是是传统的springmvc,那么第二种方法出错的几率会更小一些

<mvc:annotation-driven />
		<context:component-scan base-package="包名">
		</context:component-scan>

扫描此包下面的全部注解,能够将controller,service等都注入进去,只须要在applicationContext.xml中配置就能够了

还有一个疑惑就是:

springmvc的工做流程就是从controller到service,那么exclude这种配置方法的意义在哪里?

理解:

有的时候会出现框架混用,或者不须要controller中的注解,须要使用service,或者本身想要的注解,这种我本身尚未接触过,因此也只是一个大概的理解。

参考概念:

https://www.jianshu.com/p/72f24dc82560

相关文章
相关标签/搜索