SpringMVC入门(小小白篇)

前几天写了3篇深入浅出SpringMVC(小白篇),组内员工看了表示内容过细,不好理解,所以增加这个小小白篇,希望能帮助更好的理解小白篇的内容。

我们从一家叫春天饭店的故事开始,饭店老板叫小白。

一、静态时代(原始时代)
一开始春天饭店只是路边摊,只提供热干面,凉皮两款产品。小白是老板也是唯一员工,既当厨师,又采购、接待客户、摆桌子、打扫卫生、搞电灯(晚上)、撑打伞(下雨)等。还好客户、产品不多,勉强能应付。

这个时候服务端编程也差不多,服务端程序就是春天饭店,网页相当于凉皮和热干面,服务端编程就相当于经营春天饭店。如下图


静态网页时代

二、动态时代
客户个性要求越来越多,可能要求有小辣,中辣,变态辣等,有些还不要香菜。小白忙不过来了,到新洲永旺里面美食广场租了个店,把电灯、打扫卫生,摆桌子这些杂事交给广场物业搞,自己安心解决好客户个性需求。另外为做的快,得将食材分门别类放好在一个地方。

用户对服务端的个性要求越来越多,如有注册,登录,留言等等。这时业界发明了动态web语言(APS、PHP等),专门处理变态辣、不放香菜等个性需求,放到HTML这个静态内容里(如未放调料的凉皮)。
动态时代-早期

PHP代码,"php"那行就是个性需求

三、Java web时代
春天饭店生意越来越好,小白忙不过来了,请了位厨师做凉皮和热干面,请了位服务员接待客户。

Java web服务端架构变成底下这样,JSP接收和返回客户请求,JavaBean专门处理业务逻辑。这两个名词就像名字一样,记着左右即可。整个架构有个名字,叫JSP模型1。
JSP模型1

根据客户需求,春天饭店加了不少产品,包括烤鱼等,客户同样有个性需求:如乌江鱼配土豆,加酸梅汤或可乐、只用一次性筷子等等。产品+个性需求太多,小白解释不过来,就做了个菜单供客户选择(每个客户一张菜单,客户在上面打钩)。服务员将客户需求告诉厨师,厨师做好菜,服务员根据客户下单配上可乐、筷子端给客户。

这就是服务端编程的MVC时代,控制器Controller相当于服务员(在java里叫Servlet);视图View相当于菜单,主要是一些网页模板;模型Model相当于厨师。


JSP模型2-MVC架构

四、Spring MVC时代
春天饭店发展迅猛,小白想多元化经营,提供除餐饮外的服务,如按摩。春天饭店改叫春天酒店。由于经营内容多了,分工不得不更细致,如要有前台,有单独负责餐饮的总厨和单独负责按摩的妈咪,给客户呈现的有菜单、按摩套餐表等,得有服务员专门给客户介绍餐饮与按摩;客户选好套餐后,由前台查询值班表,找到具体的总厨或妈咪,总厨或妈咪想办法根据客户需求提供满意的服务(服务由具体厨师或技师执行)。

Spring mvc其实就是这样一个酒店,比传统mvc(饭店)分的更细:将controller拆分为多个;view也拆成两个,一个view和viewResolver,解决不同类型视图问题;
Spring MVC架构

该图中,小白最经常需要关心(编程)的只有三件事情,1:总厨、妈咪(具体的controller)2:菜品与按摩质量(具体的厨师和技术水平)3)菜单和按摩套餐表(定期根据菜品数量和按摩方式更新)

五、Spring Boot时代
虽说春天酒店发展很好,但小白太累了,虽说核心是上面三件事情,但前台、服务员等等也要去管理(对应Spring mvc的各种配置),每增加一些服务或菜品,都得去培训她们(也是配置)。于是小白请了CEO:Spring boot专门打理这些事情,小白专心去搞好菜品和服务质量。

Spring Boot

Spring boot没有改变Spring mvc的任何内容,但可以让程序猿从繁重的配置工作中解脱出来,专注于核心竞争力的业务逻辑部分,重拾搞服务端编程的初心。

六、小结

  1. 从春天饭店的发展过程看,是一个分工不断细化的过程;而服务端的框架,发展历程也雷同。简单的说就是:分而治之
  2. 如果小小白的你,一开始就基于Spring mvc编写程序(在春天酒店按摩或炒菜),你知道你做的是整体工作的哪一部份的话,能更好的服务客户
  3. 一切框架都是为了更好的服务客户,如果你服务的客户只需简单的热干面,你赶紧换成路边摊框架吧,快捷便宜,客户满意度更高。

你可能感兴趣的:(SpringMVC入门(小小白篇))