IOC(控制反转)是Spring框架的核心概念之一,通过XML配置文件管理Bean、获取Bean以及实现依赖注入的多种方式,包括setter注入、构造器注入和特殊值处理。
1. IOC基于XML管理Bean环境搭建
在Spring中,可以通过XML配置文件定义和管理Bean。首先,创建一个XML配置文件applicationContext.xml来定义Bean:
<?xml version="1.0" encoding="UTF-8"?>
<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 id="userService" class="com.example.UserService">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="userDao" class="com.example.UserDaoImpl"/>
</beans>
在这个XML配置文件中,定义了一个名为 userService 的Bean,它依赖于名为 userDao 的另一个Bean。
2. 获取Bean
在应用程序中获取Bean的方式有多种,其中最常见的是通过ApplicationContext获取
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) context.getBean("userService");
userService.processUser();
}
}
3. 依赖注入的多种形式
- Setter注入:
在Bean类中提供setter方法,Spring会通过调用setter方法来注入依赖。
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
- 构造器注入:
通过构造函数将依赖注入到Bean中。
public class UserService {
private UserDao userDao;
public UserService(UserDao userDao) {
this.userDao = userDao;
}
}
- 特殊值处理:
可以通过<property>标签设置特殊值,如字面值、null值等。
<bean id="userService" class="com.example.UserService">
<property name="specialValue" value="100"/>
<property name="nullValue" ref="nullBean"/>
</bean>
原文链接: https://blog.csdn.net/2401_82884096/article/details/137815952