在Spring MVC中定制DispatcherServlet是一种常见的做法吗?

时间:2009-08-20 08:19:05

标签: java spring spring-mvc

我是Spring MVC的新手。但我在使用Struts 1.x方面有一定的经验。我想知道在使用Spring MVC时是否通常自定义 DispatcherServlet ,就像人们有时在Struts中自定义 ActionServlet RequestProcessor 一样1.x的?

或者让我们稍微扩展一下这个问题。资深Spring MVC程序员定制MVC框架的入口点在哪里?

谢谢。

5 个答案:

答案 0 :(得分:5)

与大多数Spring API一样,

DispatcherServlet非常适合扩展。事实上,如果你发现它的一部分不能进行子类化,那就在他们的JIRA上提出一个问题,他们可能会为你解决这个问题(我已经多次这样做了)。

话虽如此,绝大多数功能都可以通过配置DispatcherServlet而不是扩展来实现。

答案 1 :(得分:4)

绝对是一个好习惯。 Spring Framework - Web MVC framework

  

总结:您可以自定义Spring   DispatcherServlet通过添加上下文   参数....特别方便的时候   你有很多共同的功能   在一个控制器中。

答案 2 :(得分:2)

这是我的建议,我认为扩展调度程序servlet将是一个“解决方案”。

  1. 单独验证,从控制器转换(有几个原因)
  2. 使控制器成为服务层的委托者。
  3. 在到达控制器之前完全构建/填充域/请求对象。

答案 3 :(得分:1)

为什么要专门化org.springframework.web.servlet.DispatcherServlet

任何请求预处理都可以/应该使用javax.servlet.Filter来完成,剩下的就是org.springframework.web.servlet.mvc.Controller的实现。

或者参见 adatapost 的回答,该回答是指通过web.xml文件配置org.springframework.web.servlet.DispatcherServlet

答案 4 :(得分:1)

我,从来没有找到扩展DispatcherServlet的理由。