再后来,我们引入 Struts2/SpringMVC 这一类的框架,来简化我们的开拓 ,和 Servlet/JSP 比较,引入框架之后,生产力确实提高了不少,但是用久了,又创造了新的问题,即配置繁琐易出错,要做一个新项目,先搭建环境,环境搭建来搭建去,便是那几行配置,不同的项目,可能便是包不同,其他大部分的配置都是一样的。
Java 总是被人诟病配置繁琐代码量巨大,这便是个中一个表现。那么怎么办?Spring Boot 应运而生,Spring Boot 是 Pivotal 团队在 2013 年开始研发的一个基于 Spring 的全新框架,试图将 Spring 中臃肿的配置进行简化,使 Java 开拓更加轻量与快速,这个框架非常生动,官方也非常重视。
Spring Boot 紧张供应了如下功能:
为所有基于 Spring 的 Java 开拓供应方便快捷的入门体验。开箱即用,有自己自定义的配置便是用自己的,没有就利用官方供应的默认的。供应了一系列通用的非功能性的功能,例如嵌入式做事器、安全管理、康健检测等。绝对没有代码天生,也不须要XML配置。
Spring Boot 的涌现让 Java 开拓又回归大略,由于确确实实办理了开拓中的痛点,因此这个技能得到了非常广泛的利用,大概从 2017 年年初开始,Spring Boot 基本上口试必问,现在盛行的 Spring Cloud 微做事也是基于 Spring Boot,因此,所有的 Java 工程师都有必要节制好 Spring Boot。
从 Spring Boot 出身的过程中,我们可以看到:
Spring Boot 并非重新努力别辟门户,而是在现有的 Spring 框架的根本上整出来的,它把 Spring 中繁琐的配置进行了简化。Spring Boot 降落了 Spring 家族的利用门槛,使新手更易上手 Spring 框架。既然 Spring Boot 不是重新努力别辟门户,那么 Spring Boot 学习要不要跳过 SSM 呢?听松哥来剖析。
2.要不要跳过 SSM这是很多人问我的一个问题,我的建议是:「不要」。
Spring Boot 基于 Spring,大略且随意马虎上手,很多人想当然的跳过 SSM 直接上 Spring Boot。但是当我们细究 Spring Boot 中的自动化配置、条件表明、Java 配置等东西时,实在找不出太多新鲜玩意,Java 配置是 Spring3 开始供应的,条件表明 也是 Spring 中的东西,很多很多,都是 Spring 中就有的,只不过这些东西在 Spring Boot 时期大放异彩。
也便是说,纵然你跳过了 SSM 直接去学习 Spring Boot,实际上还是在学习 Spring 中的东西,那既然这样,我们还不如坐下来,老诚笃实把 Spring 过一遍。
各个领域的开拓工程师实在都会面临类似的问题,学习了一些精良的封装框架之后,还有没有必要去学习底层?当然有必要!
由于底层的东西可以让你深刻的理解你目前用的这个东西,也能让你在出问题时快速办理掉问题。
实在无论你想搞什么技能,都要有稳定的根本知识,这些稳定的根本知识就像肥沃的土壤,可以孕育出各种不同技能方向的牛人,根本节制好了,学什么框架都快。本日你跳过 SSM 直接学了 Spring Boot,假如有一天 Spring Boot 弗成了,Pivotal 团队又基于 Spring 框架搞了一个新的框架出来,那你是不是又要去学一遍?但是如果你一开始就节制了 Spring 的各种用法,无论基于它搞出来什么样的框架,你都能快速上手。更进一步,如果你研究透了 Spring 中的 AOP、Ioc/DI,你会创造很多框架大同小异,核心思想便是这些东西,那么你在学习 Spring 之外的框架,就会随意马虎很多。
「如果你对 SSM 还不太熟习的话,可以在公号后台分别回答 spring、springmvc、mybatis 获取松哥手敲 5 万余字的干货教程。」
3.都要学哪些那么 Spring Boot 学习都要学哪些东西呢?我这里列举了一个进阶路线:
最根本确当然是 Spring/SpringMVC 干系的东西了。搭配各种页面模版的利用,例如 Jsp/Thymeleaf/Freemarker/Groovy Templates 等。和各种 SQL 数据库的整合,以及一些常见的数据持久化框架,例如 JdbcTemplate、MyBatis、Jpa 等。和各种 NoSQL 数据库的整合,例如 Redis、MongoDB、Elasticsearch 等。搭配安全管理干系的知识点,例如 Spring Security、Shiro 等。缓存的利用,例如 JCache、Ehcache 等。和中间件的搭配整合,如 ActiveMQ、RabbitMQ、Kafka 等。数据校验/定时任务/邮件发送等。各种监控的利用。结合 WebSocket 的利用。Spring Cloud 中干系组件。...上面这些只是我列出来的一些比较常见的技能点,大家可以结合自己的情形,按照顺序一个一个来学,这里边还涉及到很多第三方的框架,例如 Redis、MongoDB、RabbitMQ 等,Spring Boot 的涌现只是让这些组件在和 Spring 家族的产品整合时变得更加方便,但是并不会简化这些组件原来的用法,以是,该学 Redis、该学 MongoDB、该学 RabbitMQ 等等,还是一个不能少。以 Redis 为例,学会了 Redis,学会了 Spring 整合 Redis,再回过分来看 Spring Boot 整合 Redis,那切实其实太 easy 了(「大家在"大众年夜众号后台回答 redis,有松哥手敲的 redis 教程」)。
当然,学习 Spring Boot 终极我们还是奔着快速开拓和微做事去的,以是,像 Docker、Spring Cloud 等技能,也是须要去理解一下的。
4.怎么学Spring Boot 发展到本日,网上的资料和图书现在是越来越多了。在看资料学习的同时,大家也要留神以下几个点:
多看源码。不同于其他全新的框架源码你可能会看懵了,由于 Spring Boot 是基于 Spring 的,以是只要你 Spring 根本踏实,看 Spring Boot 源码可以说是毫无压力。如果看 Spring Boot 源码以为有压力,那可能你 Spring 根本不牢固,这个时候不妨放下 Spring Boot,去复习下 Spring。每当学会 Spring Boot 中的一个知识点,不妨想想这个功能在 Spring 框架中要如何利用,如何配置,两边都搞懂了,相互印证,加深对一个知识点的理解。多多关注 Spring Boot 的发展动态。不同于传统的框架可能一年更新一两次,Spring Boot 更新非常频繁,二次每次更新都会带来一些好玩的东西,可能会有新的 API 加入进来,也可能会有旧的 API 失落效,变革大,因此多多关注,避免掉坑。末了,我这里给大家列举几个我自己常常关注的几个资源。
4.1 官方文档诚笃说,Spring Boot 的官方文档是我打仗的所有官方文档中最条理清晰浅近易懂的,大家做开拓,多多少少都打仗过一些第三方的开放平台,很多平台的文档真是让人忍不住想吐槽,框架都做出来了,认负责真写个文档有那么难么?
不过 Spring Boot 的官方文档可以算是非常非常友好了。虽然是英文的,但是实际上对英文哀求并不高,连读带猜,实在很随意马虎明白它的含义,我一样平常对 Spring Boot 中某个知识点有疑问的时候,都是首选官方文档,当前最新版的官方文档地址是:
https://docs.spring.io/spring-boot/docs/2.2.4.RELEASE/reference/html当然,如果你嫌官方文档打开慢,松哥也帮你下载好了最新版的 pdf,"大众年夜众号后台回答 springboot2.2.4 可以获取。
4.2 Spring 官方博客每次 Spring 或者 Spring Boot 发新版本,松哥都会去看一下新版本有哪些好玩的东西,增加了哪些内容。我不可能把源码读一遍然后总结出来它的变革,那一样平常是如何获取威信的第一手信息呢?关注 Spring 官方博客即可。
打开 Spring 官网,在顶部菜单里有一个选项便是 Blog,关于 Spring 家族产品的任何更新操持,更新结果,都会在这里关照到大家。
松哥也推举大家多多关注这个 Blog,一方面能够及时吸收到一手信息,另一方面还能提高英语,一石二鸟。宅在家,泡一壶茶,细细的品一品这个网站,真的蛮不错。
Blog 地址:
https://spring.io/blog4.3 中文资料说到中文资料,就不得不说松哥自己的在线教程和离线 pdf 文档了。手敲了 274 页教程,席卷了 Spring Boot2 常见的各种用法,即有离线的 pdf 供大家下载,也有在线的学习网站,这便是满满的诚意,还没下载 pdf 的小伙伴不要错过。
在线教程地址:
http://springboot.javaboy.org离线 pdf 下载文档,在公众年夜众号后台回答 springboot 获取百度网盘地址。
4.4 学习案例除了这些笔墨性的东西之外,一些在线案例也至关主要。这里给大家推举两个仓库,这两个仓库中的所有案例都是基于 Spring Boot2 来做的。
首先便是我公众号上文章的配套案例:
GitHub 地址:
https://github.com/lenve/javaboy-code-samplesGitee 地址:
https://gitee.com/lenve/javaboy-code-samples这个仓库中的大部分案例都是针对 Spring Boot 的,而且有一个好处便是这些案例都有对应的讲解文章,每个案例都对应一个文章,岂不美哉。
另一个仓库便是我整理的比较完善的一个仓库,但是就没有对应的讲解文章了:
GitHub 地址:
https://github.com/lenve/javaboy-video-samplesGitee 地址:
https://gitee.com/lenve/javaboy-video-samples5.小结资料贵精不贵多,关键是要动手去学。大学时候,有的同学热衷于网络各种资料,电脑硬盘塞得满满的,但是便是不学,这些资料再多也没有用。