springmvc的xml配置中必须的配置
<context:annotation-config />
说明:激活注解(已经在springmvc容器中注册的bean,springmvc容器可以识别这些注解),一般是常用的一些注解,例如@controller,@autowire 等
<context:component-scan base-package="com.talkweb.tangjia" />
说明:包括<context:annotation-config />配置的功能,并且指定扫描的基包的类以及子包的类 并且把注解的对象注册到spring容器中成为bean
其实有了<context:component-scan base-package=“com.talkweb.tangjia” /> 无需配置 <context:annotation-config />也可以
<mvc:annotation-driven />
说明:开启SpringMVC功能,包括映射器,适配器,转换器,校验器等
springmvc的xml配置中可选的配置
<mvc:resources location="/file/" mapping="/file/**" />
说明:由Spring MVC框架自己处理静态资源,并添加一些有用的附加值功能,
location表示资源所在目录(默认web资源目录带classpath表示类路径下的目录),
mapping表示匹配到的url,/file/**表示file开头的所有url.
<mvc:default-servlet-handler/>
说明:会在Spring MVC上下文中定义DefaultServletHttpRequestHandler(类似一个controller),对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。
比较
<mvc:resources location="/file/" mapping="/file/" />和mvc:default-servlet-handler/都是解决静态资源的映射问题,一个由Spring MVC框架自己处理静态资源,一个转由Web应用服务器默认的Servlet处理。<mvc:resources location="/file/" mapping="/file/" />独有的特点
1.允许静态资源放在任何地方,如WEB-INF目录下,传统Web容器的静态资源只能放在Web容器的根路径下
2.你可以通过cacheSeconds属性指定静态资源在浏览器端的缓存时间
处理静态资源第三种方法
web.xml中添加default servlet-mapping,完全跳过springmvc 的分派器
**重要说明:
springmvc的servlet配置会映射如下
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
< url-pattern>/ /表示没有其他url-pattern路径匹配时,url对应的servlet,但是.jsp结尾的url不会匹配拦截
< url-pattern>/* /*表示匹配所有url,包括.jsp结尾的url