第一章Spring的简介

1、Spring框架的由来

J2EE作为一种企业级应用开发平台,其优秀表现人所共知。然而,即使拥有强大的军队,若缺乏出色的指挥将,也无法发挥出其强大的战斗力,从而取得辉煌的战果。

在J2EE平台的早期实践中,出现了对J2EE平台提供的各项服务的滥用,导致基于J2EE平台的企业级开发陷入困境。

Spring框架于2003年兴起,是一个轻量级的Java开发框架,源于Rod Johnson在他的著作《Expert One-On-One J2EE Development and Design》中阐述的理念和原型。最初,它的主要目的是简化Java EE的企业级应用开发。相对于过去EJB时代繁重的企业应用开发,Spring框架的出现为曾经阴霾的天空带来了灿烂的阳光。


2、Spring之崛起

Spring之崛起的原因有很多。这个轻量级Java框架之所以迅速崭露头角,与其提供的诸多优势和创新理念密不可分。
简化企业级开发:Spring框架的出现简化了Java企业级开发。相比于繁重的EJB开发,Spring提供了更为清晰、灵活的解决方案。
依赖注入(DI)与面向切面编程(AOP):Spring引入了依赖注入和面向切面编程的思想,使得代码更易于维护、测试和扩展。
模块化设计:Spring框架采用模块化设计,为开发人员提供了轻松集成各种技术栈的可能,如数据库访问、事务管理、Web开发等。
松耦合:Spring框架的松耦合设计使得不同部分的代码可以相互独立,从而提高了整体的可维护性和可扩展性。
开放式社区:Spring框架建立了开放的社区生态系统,鼓励开发人员共享想法、解决方案和最佳实践,从而形成了强大的支持体系。
创始人的影响:Rod Johnson等创始人的积极推动和专业见解也为Spring的发展提供了坚实基础。
这些因素共同促使Spring以其独特的优势和创新理念在Java企业级开发中迅速崛起,并成为开发人员的首选框架之一。


3、Spring框架概述

从前,在Java的大森林中,有一片神奇的土地,名叫"Spring"。这片土地上生长着各种美丽而强大的植物,它们分别象征着Spring框架中的各种功能和特性。

在这片土地上,有一位智慧而善良的园丁,名叫"Rod Johnson"。Rod是这片土地上的守护者,他有着非凡的见识和智慧。他注意到这片土地原本虽然生机盎然,但由于管理混乱、依赖杂乱等问题而日渐失去活力。于是,他开始策划着一场变革之旅。

Rod明白,为了让这片土地重焕生机,他需要一种全新的方式来管理这里那些繁杂的植物。于是,他提出了"控制反转"的理念,使得每一株植物可以有自己的生长空间,而不再依赖于别的植物。

随后,他又强调"依赖注入"这一概念,让每株植物可以从土地中获取所需的养分,而不用亲自去寻找。这样设计使得这些植物的生长变得更为高效。

Rod还发明了一种神奇的"面向切面编程"技术,一种能够让植物们自由组合、互相辅助的方式,令整片土地都焕发出一种特殊的生机。

渐渐地,这片土地上充满了生机与活力。每一株植物都在互相配合下茁壮成长,形成了一片绚丽而蓬勃的景象。园丁Rod Johnson因其智慧和勇气,被人们誉为这片土地上的英雄。

从那以后,人们便将这片土地上的新秩序称为"Spring",这个充满魔力的名字也因此广为传颂。而这位园丁Rod Johnson,则被尊称为Spring框架的缔造者和守护者。

就这样,Spring框架成为了Java世界中最重要的框架之一,为开发者们带来了许多便利,也为Java企业级应用开发带来了一场新的春天。


4、小结

注意﹐不要只将Spring看作是一个IoC容器,也不要只将Spring与AOP挂钩,Spring提供的远比这些东西要多得多。Spring不仅仅是一个简化Java EE开发的轻量级框架,它更应该是一个简化任何Java应用的开发框架。如果你愿意,甚至可以在Java的三个平台上(J2SE、J2EE、J2ME )应用Spring框架。即使当前的Spring框架还不支持相应平台或者相应场景的应用开发,但是只要你掌握了Spring的理念和方法,同样可以让新的"Spring"在相应的场景中发挥作用。

相关推荐
【D'accumulation】31 分钟前
典型的MVC设计模式:使用JSP和JavaBean相结合的方式来动态生成网页内容典型的MVC设计模式
java·设计模式·mvc
试行1 小时前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe1 小时前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
救救孩子把1 小时前
Java基础之IO流
java·开发语言
小菜yh1 小时前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.1 小时前
Java键盘输入语句
java·开发语言
浅念同学1 小时前
算法.图论-并查集上
java·算法·图论
立志成为coding大牛的菜鸟.1 小时前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞1 小时前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
爱上语文3 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring