目录
🔸前言
要谈Spring的历史,就要先谈J2EE。J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。
曾经使用过EJB开发JAVA EE应用的人,一定知道,在EJB开始的学习和应用非常的艰苦,很多东西都不能一下子就很容易的理解。EJB要严格地实现各种不同类型的接口,类似的或者重复的代码大量存在。而配置也是复杂和单调,同样使用JNDI进行对象查找的代码也是单调而枯燥。虽然有一些开发工作随着xdoclet的出现,而有所缓解,但是学习EJB的高昂代价,和极低的开发效率,极高的资源消耗,都造成了EJB的使用困难。而Spring出现的初衷就是为了解决类似的这些问题。
Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。
👉Spring是什么?
- Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。
- Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。
- Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。
- Spring框架主要由七部分组成,分别是 Spring Core(核心)、 Spring AOP(面向切面编程)、 Spring ORM(对象映射框架)、 Spring DAO(数据访问)、Spring Context(上下文应用环境)、 Spring Web(一站式的框架)和 Spring Web MVC(开源项目)。
框架七部分组成,详情请戳⬇️链接
https://baike.baidu.com/item/spring/85061#8https://baike.baidu.com/item/spring/85061#8
✏️核心词汇:
轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
个人理解:轻量就是操作简单
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
个人理解:容器就是spring在内存中开辟了一大块空间,用来管理对象
📖使用Spring的特点:
1.低侵入式设计,代码污染极低
2.独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
3.Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦
4.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用
5.Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问
6.Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部
📂Spring中的两大核心机制(IOC/DI、AOP)
🚩IOC/DI
IOC---控制反转,对象创建的权利由Spring框架来完成,并且管理对象的生命周期
DI----依赖注入,也就是A需要B来协助它完成工作,这就产生了依赖。所以需要的依赖项就要注入过来协同完成工作
🚩AOP
AOP---面向切面编程,把业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低。(也就是:在不修改原有代码的情况,对方法进行扩展)