为什么越来越多的人选择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弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!

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

相关文章
|
存储 小程序 数据可视化
使用无代码工具开发一款问卷调查小程序
使用无代码工具开发一款问卷调查小程序
|
小程序
微信小程序实现上拉加载分页列表的性能优化
微信小程序实现上拉加载分页列表的性能优化
|
前端开发 Java 开发者
深入理解Spring Boot中的@Service注解
【4月更文挑战第22天】在 Spring Boot 应用开发中,@Service 注解扮演着特定的角色,主要用于标识服务层组件。本篇技术博客将全面探讨 @Service 注解的概念,并提供实际的应用示例,帮助开发者理解如何有效地使用这一注解来优化应用的服务层架构
2970 1
|
消息中间件 Cloud Native 前端开发
Spring Cloud Alibaba 2021.0.1.0 版本发布啦
本次隆重发布的 Spring Cloud Alibaba 2021.0.1.0 版本在 Spring Cloud 2021.0.1、Spring Boot 2.6.3 的基础上对其中包括注册配置中心、分布式消息等在内的众多组件进行重大升级。
5872 108
Spring Cloud Alibaba 2021.0.1.0 版本发布啦
|
设计模式 缓存
二十三种设计模式全面解析-代理模式(Proxy Pattern)详解:探索隐藏于背后的力量
二十三种设计模式全面解析-代理模式(Proxy Pattern)详解:探索隐藏于背后的力量
833 1
|
监控 Java 应用服务中间件
什么是 Spring Boot,及为什么要用 Spring Boot
**Spring Boot**: 2013年起研,简化Spring笨重配置,集成常用库,开箱即用,少代码配置,专注业务。 **为何选Spring Boot?** 出色基因,快速搭建;单一依赖替多;Java Config简化配置;内嵌Tomcat,简化部署;监控REST化;微服务友好,趋势之选。
694 27
|
机器学习/深度学习 人工智能 TensorFlow
机器学习项目实战:使用Python实现图像识别
在AI时代,Python借助TensorFlow和Keras实现图像识别,尤其在监控、驾驶、医疗等领域有广泛应用。本文通过构建CNN模型识别MNIST手写数字,展示图像识别流程:安装库→加载预处理数据→构建模型→训练→评估。简单项目为深度学习入门提供基础,为进一步探索复杂场景打下基础。
1453 5
|
前端开发 JavaScript 数据库
Web的B/S架构
Web的B/S架构
1488 1
|
存储 负载均衡 NoSQL
MongoDB架构设计
【6月更文挑战第6天】MongoDB架构设计
351 2
|
前端开发
吃豆人来袭:CSS打造经典游戏动画,让网页设计更有趣!
吃豆人来袭:CSS打造经典游戏动画,让网页设计更有趣!

热门文章

最新文章