简单介绍Spring的IOC、DI以及AOP思想。
Spring 框架的发展历程可以追溯到2003年,当时由 Rod Johnson 创建并发布了第一个版本。Spring 的初衷是为了简化企业级 Java 应用程序的开发,尤其是解决当时企业级应用开发中普遍存在的复杂性和耦合度高的问题。随着时间的推移,Spring 不断发展壮大,成为了一个完整的生态系统,涵盖了从核心的依赖注入和面向切面编程到 Web 应用开发、数据访问、安全、测试等多个领域。
传统 Javaweb 开发的困惑
- 层与层之间紧密耦合在了一起,接口和具体实现紧密耦合在了一起
- 程序代码中不需要手动的 new 对象,第三方根据要求为程序提供需要的 Bean 对象;
- 通用的事务功能耦合在业务代码中,通用的日志功能耦合在业务代码中。
- 第三方根据要求为程序提供需要的 Bean 对象的代理对象(增强的 Bean 对象)
IoC、DI 和 AOP 思想的提出
IoC(Inversion of Control) 思想
控制反转,强调将原来在程序中创建 Bean 的权利反转给第三方。
DI (Dependency Injection)思想
依赖注入,强调的 Bean 之间关系,这种关系负责第三方负责去设置。
AOP (Aspect Oriented Programming)思想
面向切面编程,功能的横向抽取,主要的实现方式就是 Proxy。
Java 中常见的框架:
- 基础框架: MyBatis、Spring、SpringMVC、Structs2、Hibernate 等。
- 服务框架: MQ、ES、Nacos 等。