-
定义配置文件:
- 创建一个 XML 文件(通常是 applicationContext.xml),用于定义 Spring 容器的配置。
- 在配置文件中声明要被 Spring 管理的 Bean(组件)以及它们的依赖关系。
-
引入 Spring 相关依赖:
- 在项目的依赖管理中引入 Spring Framework 相关的依赖,以便在项目中使用 Spring 的功能。
-
创建 Bean 类:
- 创建需要被 Spring 管理的类,通常称为 Bean。
- 这些类可以是普通的 POJO(Plain Old Java Object)类,也可以是带有注解的特殊类。
-
配置 Bean:
- 在配置文件中为每个 Bean 配置相应的属性。
- 这些属性包括类名、构造函数参数、属性值等。
-
初始化 Spring 容器:
- 在应用程序中初始化 Spring 容器,通常通过 ApplicationContext 接口的实现类完成。
- 可以选择使用 ClassPathXmlApplicationContext 或 FileSystemXmlApplicationContext 等实现类,根据配置文件的位置来初始化容器。
-
获取 Bean:
- 通过容器提供的方法,如 getBean(),从容器中获取所需的 Bean 实例。
- 可以根据 Bean 的 ID 或类型进行获取。
-
使用 Bean:
- 将获取到的 Bean 实例用于业务逻辑的处理。
- 可以在其他组件中注入这些 Bean,或者直接调用它们的方法来实现功能。
-
销毁容器:
- 当应用程序关闭时,可以选择销毁 Spring 容器以释放资源。
- 可以手动调用容器的 close() 方法来销毁容器,也可以通过 JVM 的钩子函数来实现在应用程序关闭时自动销毁容器。
1. 定义配置文件
在项目的资源目录(如 src/main/resources)下创建一个 XML 文件,命名为applicationContext.xml,用于定义 Spring 容器的配置
<!-- applicationContext.xml -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 在这里定义 Bean -->
<!-- 示例:定义一个名为 "userService" 的 Bean -->
<bean id="userService" class="com.example.UserService">
<!-- 可以在这里设置 Bean 的属性 -->
<!-- 示例:设置 userService 的一个属性 -->
<property name="userDao" ref="userDao"/>
</bean>
<!-- 可以继续定义其他 Bean -->
</beans>
2. 引入 Spring 相关依赖
在项目的 Maven 或 Gradle 配置文件中引入 Spring Framework 相关的依赖。
Maven 例子:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.10</version>
</dependency>
Gradle 例子:
implementation 'org.springframework:spring-context:5.3.10'
3. 创建 Bean 类
创建需要被 Spring 管理的类。这里以一个 UserService 和一个对应的 UserDao 为例。
// UserService.java
package com.example;
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
// 其他方法...
}
// UserDao.java
package com.example;
public class UserDao {
// UserDao 类的具体实现...
}
4. 配置 Bean
在配置文件(applicationContext.xml)中为每个 Bean 配置相应的属性。
<!-- applicationContext.xml -->
<beans>
<!-- 定义一个名为 "userService" 的 Bean -->
<bean id="userService" class="com.example.UserService">
<!-- 设置 userService 的一个属性 userDao -->
<property name="userDao" ref="userDao"/>
</bean>
<!-- 定义一个名为 "userDao" 的 Bean -->
<bean id="userDao" class="com.example.UserDao"/>
</beans>
5. 初始化 Spring 容器
在应用程序中初始化 Spring 容器,通常通过 ApplicationContext 接口的实现类完成。
// Main.java
package com.example;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
// 初始化 Spring 容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 获取 userService Bean
UserService userService = (UserService) context.getBean("userService");
// 使用 userService
// 这里可以调用 userService 的方法来完成业务逻辑
}
}
6. 获取 Bean
通过容器提供的方法,如 getBean(),从容器中获取所需的 Bean 实例
// 获取 userService Bean
UserService userService = (UserService) context.getBean("userService");
7. 使用 Bean
将获取到的 Bean 实例用于业务逻辑的处理。
// 使用 userService
// 这里可以调用 userService 的方法来完成业务逻辑
8. 销毁容器
当应用程序关闭时,可以选择销毁 Spring 容器以释放资源。
// 关闭 Spring 容器
((ClassPathXmlApplicationContext) context).close();