深入浅出SpringMVC(小白篇)3-完结

深入浅出SpringMVC(小白篇)1
深入浅出SpringMVC(小白篇)2

五. 微服务时代-Spring Boot
事实上,我相信Spring Boot是长久以来Java开发历程里最意义深刻、激动人心的东西 --《Spring Boot In Action》
是的,就是这玩意让我继续在java 生态就像玩下去。否则就转行Python界了(他们的口号:人生苦短,我用Python)
Why?我们看看这个场景:假设你受命用Spring开发一个简单的Hello World Web应用程序。你该做什么?我能想到一些基本的需要:

一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有SpringMVC和Servlet API这些依赖。
一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
一个启用了Spring MVC的Spring配置。
一个控制器类,以“ Hello World”响应HTTP请求。
一个用于部署应用程序的Web应用服务器,比如Tomcat。

最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用样板。既然所有Spring Web应用程序都要用到它们,那为什么还要你来提供这些东西呢?
那Spring Boot(以下简称boot)能干啥呢?小白只需要记住2点,尤其是第1点:

自动配置:针对很多Spring应用程序常见的80%的功能,能给我们自动配置好。
起步依赖:告诉Spring Boot需要啥大功能,它就能引入所有相关的库,比如一个spring-boot-starter-web,就可引入之前所有练习所用的相关库

小白会问,boot咋知道你要啥配置呢?问的好,这里boot遵循一个原则:约定大于配置。意思是平时大家经常用的DispatchServlet,ViewResolver,甚至8080端口,boot先自动帮你配好;如果你无特殊需求,就0配置。快速做个练习体验一下吧:Spring Boot起步。官方guide比较啰嗦,我们直接用Spring Initializr生成Maven项目,几分钟就可以搞定练习。

那微服务和boot有啥联系?简单的说,之前都是单体程序:一堆业务逻辑同放入一个SpringMVC工程,后期难维护;微服务风格后,每个工程都相对简单,如果还来这么啰嗦的工程组织方式,就要被历史淘汰了。

小结
这里简要引入了boot这样创新性的框架,并体验了快速开发java web程序的能力。由于boot只是对Spring、SpringMVC“包装”了一下,而非重写,因此后续知识点建议大家看官方reference或照着这个blog里面的Spring Boot 基础教程练习一遍即可。

大结

1.我们从web编程的原始时代,走到了Spring Boot时代,架构从简单到复杂再回归简约,让小白体验了SpringMVC等框架为什么会设计成这样子,以便更好的用它。
2.列出了用传统Java Web(基于Servlet)、SpringMVC写代码的套路
3.最后引入Spring Boot来解决上述MVC框架的痛点,绝招是自动配置,理念是约定大于配置。如果小白没有什么历史项目负担,直接上Spring Boot吧,人生苦短。(题外话:小白们优势很大,没有Java语言历史负担,如果条件允许,推荐学学kotlin,简洁、100%java兼容、Google和Spring官方支持

你可能感兴趣的:(深入浅出SpringMVC(小白篇)3-完结)