打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
强大的Spring Boot是如何发展起来的,你知道吗?

  

  Spring帝国

  Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验。在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词,那么Spring为什么能够在众多开源框架中脱颖而出,成为业内一致认可的技术解决方案呢?我们不妨从最初的Spring Framework开始,看看它为什么能够横扫千军,一统江湖!

  挑战权威,一战成名

  2004年3月,Spring的第一个版本以及其创始人Rod Johnson的经典力作《Expert one-on-one J2EE Development without EJB》发布,打破了当时Java开发领域的传统思考模式,企业级应用开始走向“轻量化”发展的步伐。

  最初的Spring Framework 1.0并不像如今的Spring那么复杂,但是在该版本中已经包含了Spring中最为核心的两大要素:依赖注入和面向切面编程,这两个功能是Spring区别于其他优秀框架,并在企业级应用中建立核心地位的关键所在。很多开发者在初涉Java应用的时候很可能会觉得这两个功能的意义并不大,因为不用它们我们依然可以很好的实现业务功能,事实也确实如此,但是随着业务的迭代和开发的深入,复杂多变的需求开始慢慢侵蚀原本“完美”的架构,开发与测试的难度逐步增大,往往在这个时候,我们才体会到了Spring的价值。所以,即便在Spring的最初版本中也封装了诸多偏业务型的功能封装,如:邮件发送、事务管理等,但我们要知道真正让企业级应用离不开Spring的理由并不是这些与业务直接相关的功能,而是上面所提及的与业务实现毫不相关的两大核心。

  由于在初期版本中Spring对很多功能性封装并没有今天的Spring那么强大,所以很长一段时间,我们都采用了Spring做工程管理来整合其他更优秀的功能型框架来完成系统开发的架构模式,比如曾经风靡一时的Spring + Struts + Hibernate架构,相信可以勾起一代人的回忆。

  优雅灵活,吸粉无数

  Spring在发布并获得业界的普遍认可之后,Spring开源社区变得异常活跃,除了社区自身不断对Spring进行增强之外,其他功能性框架也纷纷对Spring进行适配与支持。在随后发布的Spring 2.x和3.x中,先后支持了Annotation的优雅配置方式以及更为灵活的Java类的配置,这使得Spring在管理Bean的配置方式上变得更为多样化。

  但是随着Spring的深入应用,繁琐的配置问题也开始显现,我们会发现每次在构建项目的时候总是在不断的复制黏贴着一些模版化的配置与代码,有时候我们只是想实现几个很简单的功能,结果配置内容远大于业务逻辑代码的编写;同时,在框架整合过程中,对于一些共同依赖的Jar包存在着潜在的冲突风险,使得一些复杂的整合任务变得困难起来。所以,Spring的“轻量级”在其他动态语言面前就显得不那么轻了。

  轮子大师,前途未卜

  在之后的Spring 4.x中除了提供对Java 8的支持以及对依赖注入的增强之外,有很长一段时间,Spring社区对其核心框架的创新就没有那么出彩了,社区更多的精力开始将矛头转向了曾经那些亲密无间的小伙伴们。于是,我们在Spring社区发现多出了各种功能性的兄弟项目,比如:简化数据访问的Spring Data、提供批处理能力的Spring Batch、用于保护应用安全的Spring Security等。

  虽然这些框架从个体来说都有一定的优势和先进的理念,但是对于很多既有系统来说,在功能性框架上很难做出改变,对于这些新生的轮子项目就很难得到应用,除了一些从零开始的系统会做一些尝试之外,鉴于学习成本和踩坑风险的考虑,中小团队对这些新项目很少有愿意去尝试的。所以,一些老牌的功能性框架除非有严重的性能或安全问题出现,不然很难被这些轮子所替代。

  在这段时间里,虽然Spring社区推出了那么多的轮子项目,但是真正在国内得到广泛应用的并不多,很多开发团队依然只是使用最核心的IOC和AOP,并根据自己团队的技术栈情况整合出更适合自身的脚手架来进行系统开发。

  神兵出世,再创辉煌

  2014年4月1日,Spring Boot发布了第一个正式版本。该项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的二手Spring功能。一直到今天发布2.x版本,共经历了近4年的发展,Spring Boot已经是一个拥有了21000多Star,15000多次Commits,贡献者超过400多名的超热门开源项目。

  

  Spring Boot为什么突然如此备受关注与推崇呢?主要有以下几点:

  简化依赖管理:在Spring Boot中提供了一系列的Starter POMs,将各种功能性模块进行了划分与封装,让我们可以更容易的引入和使用,有效的避免了用户在构建传统Spring应用时维护大量依赖关系而引发的JAR冲突等问题。自动化配置:Spring Boot为每一个Starter都提供了自动化的Java配置类,用来替代我们传统Spring应用在XML中繁琐且并不太变化的Bean配置;同时借助一系列的条件注解修饰,使得我们也能轻松的替换这些自动化配置的Bean来进行扩展。嵌入式容器:除了代码组织上的优化之外,Spring Boot中支持的嵌入式容器也是一个极大的亮点(此处仿佛又听到了Josh Long的那句:“Deploy as a Jar, not a War”),借助这个特性使得Spring Boot应用的打包运行变得非常的轻量级。生产级的监控端点:spring-boot-starter-actuator的推出可以说是Spring Boot在Spring基础上的另一个重要创新,为Spring应用的工程化变得更加完美。该模块并不能帮助我们实现任何业务功能,但是却在架构运维层面给予我们更多的支持,通过该模块暴露的HTTP接口,我们可以轻松的了解和控制Spring Boot应用的运行情况。

  Spring Boot虽然是基于Spring构建的,但是通过上面这些特性的支持,改变了我们使用Spring的姿势,极大得简化了构建企业级应用的各种配置工作,尤其对于很多初学者来说,变得更加容易入门使用。

  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java框架
一个比 Spring Boot 快 44 倍的 Java 框架
使用 Spring Boot 快速构建 Spring 框架应用
Java 开发者得力助手,深入实践 Spring Boot
腾讯大牛技术干货整理Nginx Spring SpringBoot Redis Sping书籍
终于把 Spring Boot 3.0 写成书了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服