当前位置: 首页 > 科技观察

为什么越来越多的人选择SpringBoot?

时间:2023-03-14 17:10:28 科技观察

我们都知道Spring是一个非常经典的应用框架。与其说是Java开发,不如说是Spring开发。为什么越来越多的人选择使用SpringBoot?。要回答这个问题,我们需要从JavaWeb开发的发展史说起。一、JavaWeb开发简史自1995年詹姆斯·高斯林(JamesGosling)率领团队设计并发布Java语言以来,Java一直位居编程语言排行榜的前列。JamesGosling也被称为“Java之父”。在最初发布的Java版本包括JavaSE、JavaEE、JavaME。JavaSE(StandardEdition)为标准版,提供核心基础功能;JavaEE(EnterpriseEdition),即企业版,主要用于企业级Web开发;JavaME(MicroEdition),即微型版本,主要用于移动设备开发。随着Java语言的广泛应用,Java也找到了自己的优势,其中JavaEE版本应用最为广泛。从1996年开始,JavaEE开发基于JSP+JavaBean。后来慢慢演化了。1997年正式推出JSP+Servlet+JavaBean开发。Servlet起到了调度控制的作用。这就是MVC设计的雏形。于是,出现了JSP+Sevlet+JavaBean+Dao的模式,将业务逻辑处理与数据库访问分离,出现了三层架构设计理念。后来在1998年左右,为了满足多台服务器之间的通信,采用了JSP+Servlet+EJB的形式,出现了RPC设计的雏形。之后,它继续发展。2006年首次出现JSF+EJB+JPA,提出前后端开发完全隔离的思路。当然,这些技术都是Java官方提供的。好像一直没有那么火爆。特别是在开源社区,发布一些开源产品来替代官方撤回的技术,主要目的是简化开发。所以有很多非常经典的Java开发框架。.2.JavaWeb框架的创始人下面简单介绍四位享誉全球的JavaWeb开发框架的创始人,他们也是JavaEE开发的改革者。首先是Hibernate框架的创始人加文·金(GavinKing)。革命性的、完全自动化的ORM框架于2006年发布,初始版本基于JPA实现。第二个是克雷格·麦克拉纳汉(CraigMcClanahan),著名的Struts框架的创始人,叫克雷格·麦克拉纳汉(CraigMcClanahan),早期的程序员都用过Struts1和Struts2,我体验过很酸的味道。2008年发布1.0版本,2013年6月下旬,安全漏洞爆发。那时,我开始彻底放弃Struts框架。第三个是克林顿·比格(ClintonBigger),MyBatis框架的创始人,2010年发布,最早的名字是iBatis,是一个比Hibernate更轻量级的半自动持久化框架。目前大部分互联网公司都使用MyBatis作为持久层的框架。第四个是著名的Spring框架创始人罗德·约翰逊(RodJohnson)。2004年,发布了1.0版。朋友们可以对比一下发际线。3、Spring的演变Spring是一个通用性很强的框架,它提供的工具也很全面,可以满足各个领域的开发需求。所以在使用Spring之前需要完成很多个性化的配置。在Spring的演进过程中,一直存在一个争议,是使用XML作为配置方式,还是使用Annotation注解作为配置方式?Spring在开源社区不断的质疑声中不断发展演变。直到Spring4.0发布,已经全面支持注解配置,无需XML即可开发。但是,开发者使用纯注解进行开发后,发现代码侵入较多,配置也有点麻烦,尤其是一些Maven依赖也比较复杂,包括部署外部Tomcat容器,也需要做大量的工作。因此,Pivotal团队在2013年开始研发设计SpringBoot,其初衷是为了简化开发,解放程序员的双手。2014年4月,全新的开源轻量级框架SpringBoot1.0发布。四、SpringBoot的核心功能(1)Spring项目可以独立运行。SpringBoot可以以jar包的形式独立运行。使用:java-jarxx.jar成功运行项目,或者在应用项目的主程序中运行main函数即可;(2)嵌入式Servlet容器嵌入在容器中,这样我们就可以执行运行项目的主程序的main函数,实现项目的快速运行;主要程序代码SpringbootDemoApplication.java(3)提供了一个starter来简化Manen依赖SpringBoot提供了一系列starterpom来简化我们的Maven依赖。比如创建一个web项目,只需要添加spring-boot-starter-web:(4)Spring自动配置SpringBoot会根据我们项目中classes路径的jar包/class自动配置jar包的类的Bean,大大简化了我们的配置。当然这只是Spring考虑的大部分使用场景。在一些特殊情况下,我们还需要自定义自动配置;(5)无代码生成,无XML配置SpringBoot的神奇之处不是靠代码生成,而是通过条件注解实现的,这也是Spring4.x的新特性。5.结语因此,SpringBoot是从Spring发展而来,是Spring进化的结果,是对Spring的升级。