IOC的实现机制是什么
# IOC的实现机制是什么
# 实现机制
本质是通过 简单工厂+反射的机制来实现。
在简单工厂中,我们往往需要传入一个参数,从而让工厂来决定生产什么产品。那在IOC中,我们传入的参数是什么呢?
public class OperationFactory {
public static Operation createOperation(String operator) {
if (operator == null || operator.isEmpty()) {
throw new IllegalArgumentException("Operator cannot be null or empty");
}
switch (operator) {
case "+":
return new Addition();
case "-":
return new Subtraction();
default:
throw new IllegalArgumentException("Unsupported operation: " + operator);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
以上就是一个简单工厂类 OperationFactory
,会根据传入的参数决定创建哪种类型的 Operation
对象。
细心且具有探索精神的朋友应该会发现,spring的源码中有一个BeanFactory
类,没错,BeanFactory
就是所谓的Bean工厂。不过它被设计成了接口,它是Spring IoC容器的核心接口之一(说明Bean的创建与管理比我们现在探讨的要复杂),它提供了基本的依赖注入功能。BeanFactory
负责管理Bean的生命周期和配置,是Spring框架中最基础的IoC容器。
public interface BeanFactory {
Object getBean(String name) throws BeansException;
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
Object getBean(String name, Object... args) throws BeansException;
<T> T getBean(Class<T> requiredType) throws BeansException;
<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
boolean containsBean(String name);
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
Class<?> getType(String name) throws NoSuchBeanDefinitionException;
String[] getAliases(String name);
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
那BeanFactory的实现类会根据什么参数来创建Bean呢?
传入类路径
通过反射来进行创建。
本文待补充
上次更新: 2025/03/07, 06:05:43