概述
Spring IOC,全称为Inversion of Control,即控制反转,是Spring框架的核心部分,它负责管理对象的生命周期和依赖关系。这个概念的引入是为了降低代码之间的耦合度,提高软件组件的可重用性和可测试性。Spring通过IOC容器来实现这一目标,允许开发者声明性地配置和管理对象。
ioc的jar包
- 内核包
- spring-core-5.2.23.RELEASE.jar
- spring-context-5.2.23.RELEASE.jar
- spring-beans-5.2.23.RELEASE.jar
- spring-expression-5.2.23.RELEASE.jar
spring的4个基本内核包,所有的spring包都需要这四个包 。
- log日志包
- commons-logging-1.2.jar
log对应的包,commons-logging是log的输出接口包,功能简单但是兼容底层,实现隔离。
测试创建IoC容器
// xml方式配置文件使用ClassPathXmlApplicationContext容器读取
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("application.xml");
一、spring-core
在Spring框架中,spring-core-5.2.23.RELEASE.jar是核心模块,包含了基础的IoC功能和Spring的通用工具类。这个JAR包提供了如资源处理、类型转换、事件发布等基础功能,是其他所有模块的基础。
二、spring-context
spring-context-5.2.23.RELEASE.jar 是上下文模块,它扩展了spring-core的功能,提供了在应用程序上下文中管理和配置bean的能力。这个模块还支持国际化、AOP(面向切面编程)、事件处理、邮件服务、任务调度等多种功能。它是Spring框架中最为关键的部分,因为它的ApplicationContext接口是Spring应用的主要入口点。
三、spring-beans
spring-beans-5.2.23.RELEASE.jar包含了bean工厂和bean定义的实现,是实现IOC的关键。这个模块提供了读取配置元数据(如XML或Java注解)并创建、初始化bean实例的能力。它还支持bean的生命周期管理,包括初始化、属性设置、后处理器调用以及销毁方法的执行。
四、spring-expression
spring-expression-5.2.23.RELEASE.jar`是表达式语言模块,简称SpEL。它提供了一种强大的表达式语言,用于在运行时查询和操作对象图。SpEL可以用来在配置中动态设置bean的属性,或者在运行时进行复杂的逻辑判断和计算。
五、commons-logging
commons-logging-1.2.jar是Apache Commons Logging库,一个外包依赖包,它是Spring框架的日志抽象层。Spring使用它来实现跨日志API的透明性,允许开发者选择自己喜欢的日志实现,如log4j、java.util.logging或logback等。
这些JAR包共同构成了Spring的IOC功能,使得开发者能够轻松地进行依赖注入,减少代码中的硬编码,提高代码的灵活性和可维护性。
通过XML配置文件或注解方式,我们可以声明bean及其依赖关系,Spring容器会自动管理这些bean的创建、初始化、装配和销毁过程,从而让开发者专注于业务逻辑的实现,而不是对象的创建和管理。