您的位置:首页 > 编程语言 > Java开发

关于spring注解试注入的配置问题

2014-08-07 16:34 337 查看
如果采用

<!-- 默认的注解映射的支持 -->    
   <mvc:annotation-driven />



<mvc:annotation-driven />
会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。

然而此时需要配置静态资源转发

<mvc:default-servlet-handler/>


<mvc:resources mapping="/images/**" location="/images/" />

否则会访问不到静态资源

如果采用手动指定的形式指定注册bean

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 注意此时我使用的是spring注解并不是jsr的注解

则不需要手动配置对静态资源的转发。如果配置了<mvc:default-servlet-handler/>,并且org.springframework.web.servlet.DispatcherServlet 拦截所有的请求,由于

<mvc:default-servlet-handler/>


会把"/**" url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler处理,/** 把所有的请求都转到了处理静态资源下。会导致
无法正常访问到 (正常使用了@Controller)的控制器类,报出404

注:jsr注解和spring注解最好不要混用,个人觉得会出现稀奇古怪的问题。

个人理解 !如果不对谢谢指出!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: