在Spring Controllers之间正确分工的实践

时间:2017-03-27 09:36:43

标签: spring spring-mvc

我是网络开发的新手,所以请忍受我的误解。

我们有以下示例:

用户想要执行以下操作:登录,注销,添加2个号码,撰写评论。

根据我目前的知识,我将创建4个Controller类,如:

loginController,logoutController, ArithmethicController, TextController.

在这些控制器中,我会想要所有必需的映射,但是: 像添加2个数字,写评论...... 这样的事情必须由其他类如AdditionClass, WriteTextToSourceClass, UserAuthClass完成吗?

此外,AdditionClass, WriteTextToSourceClass, UserAuthClass可能应该扩展HttpServlet。

我有什么不知道的是,我不知道这个Servlet事情在哪里发挥作用,如果我已经将控制器之间的工作分开了,那么它真正使用/负责的是什么,那么我还有什么工作要做呢? servlets在这里?

1 个答案:

答案 0 :(得分:1)

Spring使用您在Dispatcher Servlet中定义的web.xml。多亏了这一点,您可以专注于创建控制器。 @Controller意味着Spring会找到你的映射。 在你的例子中只有4种方法,拥有多个控制器似乎有点过分。然而,在Java中,通常将任务尽可能划分为OO是一种好的做法。您提到的实际工作通常在@Service类中进行,而不是扩展Servlet。所以忘记创建自己的Servlet,只使用控制器,服务和Daos(对于CRUD操作,模型即)。

web.xml中的

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

这些教程确实帮助我开始:https://www.gontu.org/spring-framework-tutorials/