目录
本文须知
本文内容来自于B站孙帅suns的spring课程视频,由本人根据视频学习整理而成。然而,由于个人理解和整理的差异,可能存在部分地方的误差或讲解不够明确的情况。
为了获得更详细的课程内容和准确的解释,请您移步至B站,搜索孙帅suns获取详细课程视频内容,以便深入了解和学习。孙帅suns的视频将为您提供更全面、详细的知识和解释,帮助您更好地理解netty应用的相关内容。
在阅读本文时,请注意本文的目的是为了提供一个概述和个人整理的观点,而不是取代原始视频课程的内容。如有任何疑问或不明之处,建议您参考原始视频课程以获取更准确的信息。
感谢您的理解和支持!
在此附上B站对应课程视频链接:学不会Spring?因为你没有找对人
Spring介绍
Spring的出现
在2002年,Rod Johnson撰写了一本名为《J2EE设计和开发》的书,概括了当时Java企业应用程序开发的现状并指出了JavaEE规范当中EJB框架的缺陷,并在书中基于普通Java类和设计模式推出了更简单的解决方案(interface21),同年进一步拓展了其代码,最终衍生成了一个轻量级J2EE开发解决方案--Spring。
EJB介绍及其缺陷
EJB 是 Java EE(Java Platform, Enterprise Edition)中的一项关键技术,它代表 "Enterprise JavaBeans",是用于构建分布式、企业级应用程序的组件模型。EJB 提供了一种标准化的方式来创建、管理和部署分布式应用程序的组件。
当时EJB存在的问题(随着技术的发展,EJB3已经有所改善):
- 复杂性:配置和使用复杂,增加了学习曲线。
- 性能问题:在性能方面可能不如预期,尤其是在状态管理中。
- 重量级:EJB被认为是重量级的,开发部署和维护管理复杂。
- 不够灵活:在某些方面不够灵活,开发人员受到一定限制。
- 部署复杂性:部署EJB应用程序通常需要使用应用服务器,增加了部署和管理的复杂性。
什么是Spring
Spring是一个轻量级的JavaEE解决方案,整合了众多优秀的设计模式。
轻量级:
- 依赖注入(DI):Spring 管理组件之间的依赖关系,降低了组件之间的耦合,使代码更灵活、可维护。
- 无侵入性:Spring 不要求特定的继承或接口实现,可以轻松集成到现有应用程序中,不需大规模改动。
- 简化配置:提供了基于注解和自动化配置,减少了繁琐的XML配置,提高开发效率。
- 轻量级容器:Spring 容器占用较少内存,启动更快,相较于传统Java EE容器更轻量。
为什么Spring被称为JavaEE的解决方案?
- Spring 包括众多模块,如:依赖注入、AOP、事务管理等。为开发人员提供了构建复杂应用程序所需的工具和库。
- Spring 通过依赖注入和面向接口编程降低组件间的依赖关系。使得应用程序更易维护、测试。
- Spring 允许开发人员选择性地使用其模块。这种模块化的设计使得 Spring 非常灵活,适用于各种规模和类型的应用程序。
- Spring 不需要开发人员继承特定的基类或实现特定的接口,可以轻松集成到现有的应用程序中,而不需要大规模的代码更改。
- Spring 生态系统丰富多样,包括 Spring Boot、Spring Data、Spring Security、Spring Cloud 等项目,可以满足从微服务到大型企业级应用。
Spring与设计模式的整合
上述介绍了Spring整合了众多优秀的设计模式,比如:工厂、代理、模板、策略......
因此设计模式是Spring当中非常重要的核心。这里关于设计模式的学习可以观看我的设计模式专栏。
Spring的本质
Spring的本质就是工厂。
只不过这个工厂不需要我们再来自己进行创建了,它已经帮我们创建好了,Spring的这个工厂就叫ApplicationContext。