一. Spring建站之明确需求

1. 写在前面

看过Spring in Action 的同学可能会跟我有这样的困惑,刚开始完全看不进去,全是陌生的概念。在反复看了好几遍之后,我换一种思路去理解这本书。
我决定从建一个普通的网站入手,一步步去探究Spring的细节。

2. 网站需求

网站名字是Spittr,是一个模仿微博的网站。
本文的流程就是按照一个网站的构建过程,来展现在Spittr 的构建过程中用到的Spring技术。
网站主要功能有以下几点:

  • 用户注册
  • 用户登录
  • 用户发微博

3. 网站功能

3.1 用户注册

一. Spring建站之明确需求_第1张图片
用户注册

网站的本质是信息的流动,整个web围绕信息的流动展开。
用户注册就是用户信息向网站后台流动的过程。

1. 用户填写注册信息,点击Register按钮。此时url为http://localhost:8080/spitter/register,POST请求

一. Spring建站之明确需求_第2张图片
Spring请求过程

请求离开浏览器时,带着用户请求内容的信息(用户提交的表单信息)到达第一站Spring的DispatcherServlet。

DispatcherServlet, 前端控制器,将请求发送给Spring MVC控制器(controller)。
DispatcherServlet是Spring MVC 的核心,它负责将请求路由到其他的组件之中。
配置DispatcherServlet,使用Java将DispatcherServlet配置在Servlet容器中。
DispatcherServlet 加载包含Web组件的bean, 如控制器,视图解析器,处理器映射。
ContextLoaderListener加载应用中的其他bean,这些bean驱动应用后端的中间层和数据层。

2.请求经过DispatcherServlet之后到达控制器(SpitterController)

  1. 把用户提交的注册信息,存储成SpitterBean。

Bean 对应于一个实体类。此时用户注册界面提交的表单对应的是SpitterForm。再对其进行转化成为Spitter。

  1. SpitterRepository 将Spitter持久化。SpitterRepository 通过自动装配的方式注入SpitterController

创建应用对象之间的协作关系的行为称作装配。

3.2 显示用户信息

1. 处理完注册步骤后, 返回"redirect:/spitter/" + spitter.getUsername()。将URL重定向为/spitter/username

2. 在 /spitter/username 控制器中将注册的信息返回profile。在profile 显示用户的信息。

你可能感兴趣的:(一. Spring建站之明确需求)