为什么越来越多的人选择Spring Boot?

简介: 我们都知道,Spring是一个非常经典的应用框架,与其说是Java开发不如说是Spring开发,为什么现在越来越多的人会选择用Spring Boot呢?。要回答这个问题,还需要从Java Web开发的发展历史开始说起。

我们都知道,Spring是一个非常经典的应用框架,与其说是Java开发不如说是Spring开发,为什么现在越来越多的人会选择用Spring Boot呢?。要回答这个问题,还需要从Java Web开发的发展历史开始说起。

1、Java Web开发简史

f41dbaf0f22e77b1ea1350e5406f9ab0.png

自1995年James Gosling(詹姆斯·高斯林)带领团队设计发布Java语言以来,Java一直排在编程语言排行榜的前列,James Gosling也被称为“Java之父”。

0d101e9c9352beb90c72073824460d9e.png

在最初发布的Java版本中,包含Java SE、JavaEE、JavaME。

Java SE(Standard Edition)作为标准版本,提供最核心的基础功能,Java EE(Enterprise Edition)作为企业版,主要用于企业级的Web开发,JavaME(Micro Edition)作为微型版本主要应用与移动设备的开发。随着Java的语言的广泛应用,Java也找到了自身的优势,Java EE版本被应用得最多。

从1996年开始,JavaEE开发是基于JSP + Java Bean来完成的。

后来慢慢地演变,1997年官方推出了 JSP + Servlet + Java Bean来进行开发,Servlet起到了调度控制的作用,这是MVC设计的雏形。

然后,发展出现了 JSP + Sevlet + Java Bean + Dao的模式,将业务逻辑处理和数据库访问分离,出现了三层架构设计理念。

再后来,1998年前后,为了满足多服务器之间的通信,采用了JSP + Servlet + EJB的形式,出现了RPC设计的雏形。

之后,继续演变,在2006年首次出现 JSF + EJB + JPA,提出前后端完全隔离开发的思想。

当然,这些技术都是Java官方提供的。好像,一直都不那么受欢迎。尤其是在开源社区发布一些开源的产品用来来代替官方退出的这些技术,主要目的是为了简化开发。于是就出现了许多非常经典的Java开发框架。。

2、Java Web框架创始人

下面,简单总结四位全球知名的Java Web开发框架创始人,也是JavaEE开发的改造者,

cd698121478ff2286f921c98b5b378c7.png

第一位是Gavin King(加文·金),Hibernate框架创始人,一个具有革命性意义的、全自动化的ORM框架,于2006年发布,最初的版本是基于JPA来实现的。

第二位是Craig Mcclanahan(克雷格·麦克拉纳汉),著名的Struts框架创始人,叫Craig Mcclanahan(克雷格·麦克拉纳汉),比较早的程序员都用过Struts1和Struts2,感受过非常酸爽的味道。2008年发布1.0版本,在2013年6月底还爆发了一次眼中的安全漏洞,那时候开始,我开始全面弃用Struts框架。

第三位是Clinton Begin(克林顿·比格),MyBatis框架创始人,2010年发布,最早期的名字叫做iBatis,它是一个比Hibernate更加轻量级的,半自动化的持久化框架。目前,绝大部分互联网公司都是采用MyBatis作为持久层的框架。

第四位是Rod Johnson(罗德·约翰逊),大名鼎鼎的Spring框架创始人,2004年发布1.0版本,以前叫做万能胶,现在叫做全家桶,真正给程序员带来了春天。

小伙伴们可以对比一下发际线。

3、Spring的演变

Spring是一个通用性非常强的框架,它提供的工具也非常全面,能满足各个领域的开发需求。因此,使用Spring之前需要完成大量的个性化配置。在Spring演变过程中,一直存在一个争议,是使用XML作为配置方式 还是 使用 Annotation注解作为配置方式?

b0e29313e3c55586a08dc539514e9f44.png

Spring在开源社区不断质疑声中,不断的发展和演变,直到Spring 4.0版本发布的时候,已经全面支持注解方式配置,没有XML也可以进行开发。但是,开发者们在使用纯注解开发以后,发现代码侵入比较多,配置也稍显麻烦,尤其是一些Maven依赖也比较繁杂,包括使用外部的Tomcat容器部署也需要不少的工作量。

5db68be4f783111b71605f9c7385d287.png

于是,Pivotal团队从2013年开始研发设计Spring Boot,它的初衷是为了简化开发,旨在解放程序员的双手。2014年4月,发布全新开源的轻量级框架,Spring Boot1.0版本。

4、Spring Boot的核心功能

c426d7ed744a75dbe85ae11c024d313b.png

(1)可以独立运行Spring项目

Spring Boot可以以jar包的形式进行独立的运行,使用:java -jar xx.jar 就可以成功的运行项目,或者在应用项目的主程序中运行main函数即可;

(2)内嵌的Servlet容器

内嵌容器,使得我们可以执行运行项目的主程序main函数,实现项目的快速运行;主程序代码SpringbootDemoApplication.java

(3)提供starter简化Manen依赖

Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖,比如创建一个web项目,只需要添加spring-boot-starter-web即可:

(4)自动配置Spring

Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,这样一来就大大的简化了我们的配置。当然,这只是Spring考虑到的大多数的使用场景,在一些特殊情况,我们还需要自定义自动配置;

(5)无代码生成、无XML配置

Spring Boot神奇的地方不是借助于代码生成来实现的,而是通过条件注解的方式来实现的,这也是Spring 4.x的新特性。

5、结论

1d5d4b71807030792998d2bd4e303b25.png

所以,Spring Boot是由Spring发展演进而来的,是Spring进化的结果,是对Sping的升级。

听懂的小伙伴,关注点个赞,下次不迷路。

本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!

如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。

相关文章
|
7月前
|
Java Spring 容器
什么是Spring Boot插件化开发?如何进行?
什么是Spring Boot插件化开发?如何进行?
258 0
|
6天前
|
存储 安全 Java
精通 Spring Boot 系列 14
精通 Spring Boot 系列 14
14 0
|
6天前
|
存储 Java Maven
精通 Spring Boot 系列 01
精通 Spring Boot 系列 01
8 0
|
6天前
|
Java Spring 容器
精通 Spring Boot 系列 02
精通 Spring Boot 系列 02
8 0
|
6天前
|
Java 数据库 Spring
精通 Spring Boot 系列 12
精通 Spring Boot 系列 12
26 0
|
11月前
|
存储 JSON 安全
Spring Boot 安全
1.概述 在后端来说,安全主要就是控制用户访问,让对应权限的用户能访问到对应的资源,主要是两点: 认证 授权 认证,确定是谁。 授权,核实权限。 每个安全框架其实都是为了实现这两点。 目前常用的实现方式有如下几种: token JWT oauth spring security 前三种是理念,最后一种是开箱即食的框架。 2.token 2.1.理论 token ,也叫“令牌”,是验证用户身份的凭证。token的组成具有随意性,能标识用户身份即可。
101 0
|
XML 监控 Java
初学Spring Boot 必须要知道的事
Spring Boot简介 Spring Boot 核心功能 Spring Boot的优缺点 SpringBoot 常用注解和原理
141 0
|
XML 前端开发 IDE
5 分钟快速理解 Spring Boot
前言 Spring 是 Java 开发人员接触最多的框架,包括我在内的很多小伙伴只是对 Spring 进行简单使用,为了深入了解 Spring,我在 2020 年 6 月底的时候开始了 Spring 探索之路,并开设了《重学 Spring》专栏,到目前为止已经更新了 51 篇,内容涵盖了 Spring IOC、Spring AOP、Spring MVC 等内容,详细的介绍了 Spring 的核心特性与底层原理,也希望在读的小伙伴能更上一层楼。
76 0
5 分钟快速理解 Spring Boot
|
XML 监控 Java
【Spring Boot系列1】一文带你了解Spring Boot(上)
这几天一直没有更新,本来上一篇文章打算写MyBatis和实际项目的应用,当我把项目代码看完后,发现里面很多地方还是不太理解,就先不写了,等过两个月,实力水平提上来后,我再写这块内容。
266 0
【Spring Boot系列1】一文带你了解Spring Boot(上)
|
Java 测试技术 API
Spring Boot的TestRestTemplate使用
Spring Boot的TestRestTemplate使用