第一章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"在相应的场景中发挥作用。

相关推荐
xlsw_1 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹2 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭2 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫3 小时前
泛型(2)
java
超爱吃士力架3 小时前
邀请逻辑
java·linux·后端
南宫生3 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石3 小时前
12/21java基础
java
李小白663 小时前
Spring MVC(上)
java·spring·mvc
GoodStudyAndDayDayUp3 小时前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
装不满的克莱因瓶4 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb