标题: spring 详细讲解(ioc,依赖注入,aop) [打印本页] 作者: tsx81428 时间: 2024-9-16 15:34 标题: spring 详细讲解(ioc,依赖注入,aop) Spring 框架既可以从 广义 和 狭义 两个角度明白,下面讲解这两个层面的概念:
(本文重要讲解的是狭义上的spring,广义上的简朴概括)
1、spring 的含义
1. 广义上的 Spring
从广义上讲,Spring 是一个涵盖多个模块的企业级应用开发框架,它提供了从根本架构到复杂企业应用开发所需的全面办理方案。Spring 框架的模块化设计资助开发者在差别的场景中选择合适的模块或子项目。
广义的 Spring 包罗以下几个子项目:
Spring Framework:最核心的模块,提供了 IoC(控制反转)和 AOP(面向切面编程)支持,是整个 Spring 体系的根本。
Spring Boot:简化 Spring 应用开发的框架,提供自动配置、内嵌服务器等特性,大大淘汰了项目配置的复杂度。
Spring Data:用于处理惩罚数据访问层,简化与数据库的交互,支持多种恒久化技术(如 JPA、MongoDB、Redis)。
Spring Security:一个功能强大的安全框架,提供认证和授权的功能。
Spring Cloud:用于微服务架构,提供服务注册与发现、负载均衡、配置管理等功能。
Spring Batch:用于批处理惩罚任务,支持大数据量的批量利用。
Spring Integration:用于企业应用集成,支持消息驱动的架构和异步通讯。
因此,广义上的 Spring 不仅仅是一个框架,而是一个生态系统,可以用于构建从小型应用到复杂分布式系统的各种项目。
2. 狭义上的 Spring
从狭义上讲,Spring 特指 Spring Framework,它是 Spring 生态系统中的核心部分,重要提供 IoC(控制反转)容器和 AOP(面向切面编程)功能。
狭义上的 Spring 重要包括以下几个模块:
Spring Core:核心容器模块,提供了 IoC 和 DI(依赖注入)的功能,是 Spring 应用的根本。
Spring AOP:提供面向切面编程的支持,资助开发者将横切关注点(如日志、事务)从业务逻辑中分离出来。
Spring Context:提供上下文支持,是 IoC 容器的高级封装。
Spring ORM:为与 Hibernate、JPA 等 ORM 框架集成提供支持。
Spring MVC:用于构建 Web 应用的模型-视图-控制器框架。
狭义的 Spring 重要指围绕核心容器(IoC)与面向切面编程(AOP)的功能,它是企业级应用开发的根本,能够资助开发者通过解耦、简化配置等方式高效开发应用程序。
总结
广义上的 Spring 是一个完整的生态系统,包括 Spring Framework、Spring Boot、Spring Cloud 等多个子项目,涵盖了从根本应用到分布式系统开发的方方面面。
狭义上的 Spring 是指 Spring Framework,它是 Spring 生态的核心,重要提供 IoC、AOP 等核心功能。
下面会先简朴先容一下 Spring DAO 模块 和 Spring ORM 模块(我们重要讲解的是 ioc、依赖注入、aop相干内容)
1. Spring DAO(Data Access Object)
Spring DAO 模块重要用于简化对数据库的访问,特别是简化 JDBC(Java Database Connectivity) 编程。直接利用 JDBC 进行数据库利用通常会涉及到大量样板代码,比方创建连接、执行查询、处理惩罚异常、关闭资源等。而 Spring DAO 模块通过封装这些底层利用,提供了更简洁的 API。
核心功能:
简化 JDBC 编程:Spring DAO 通过 JdbcTemplate 等工具类,极大简化了数据库利用,不需要手动管理数据库连接和资源的关闭。
Spring DAO 是直接利用数据库的模块,重要通过简化 JDBC 编程来进行 SQL 利用,它得当那些需要手动编写 SQL 的场景。
Spring ORM 是与对象关系映射框架(如 Hibernate、JPA)集成的模块,适用于盼望利用对象利用数据库、淘汰 SQL 编写的场景。
简朴来说,Spring DAO 更倾向于手动管理 SQL,而 Spring ORM 则是通过映射 Java 对象与数据库表来进行利用。如果你的项目是以 ORM 框架为主,可以利用 Spring ORM;如果你需要更多的 SQL 自定义控制,可以利用 Spring DAO。
2、IoC(IoC, Inversion of Control)
1. IoC 的概念
IoC 是 Spring Framework 的核心理念。它通过将对象的创建和管理职责交给容器,使对象之间的依赖关系由外部容器来处理惩罚,从而解耦组件之间的关系。
传统的编程方式下,对象 A 需要依赖对象 B 时,通常由对象 A 直接创建或获取对象 B。比方:
public class A {
private B b;
public A() {
b = new B(); // A 负责创建 B 对象
}
}
复制代码
这种方式的问题是,当需要改变对象 B 的实现或配置时,必须修改 A 的代码,从而增加了耦合度,降低了系统的灵活性。
将控制权从对象 A 手中交给外部的 IoC 容器,让容器负责创建和管理对象 B,并将它注入到对象 A 中。对象 A 不再关心 B 的创建过程,只需利用 B。这样,系统中的对象依赖关系就被 "反转" 了。 IoC(Inversion of Control) 是 Spring 框架的核心概念之一,它用于管理对象的生命周期和依赖关系。通过 IoC,Spring 框架接管了对象的创建和管理,使得应用程序的组件解耦,从而进步了代码的可维护性和可测试性。下面详细讲解 IoC 怎样管理 Bean 以及相干的概念。 2. IoC 容器 (spring 容器)
IoC 容器是 Spring 框架中的核心组件,它负责管理应用程序中的对象(即 Bean)。重要的 IoC 容器有两个: