基本容器
根据github 项目学习:tiny-spring,地址:https://github.com/code4craft/tiny-spring
参考的博客:https://blog.csdn.net/w8253497062015/article/details/90274387
1. 定义 Bean
public class BeanDefinition {
private Object bean;
public BeanDefinition(Object bean) {
this.bean = bean;
}
public Object getBean() {
return bean;
}
}
2. 创建 BeanFactory
使用ConcurrentHashMap
存放 bean。
public class BeanFactory {
private Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>();
// 获取map中对应的bean
public Object getBean(String name) {
return beanDefinitionMap.get(name).getBean();
}
// 注册一个bean
public void registerBeanDefinition(String name, BeanDefinition beanDefinition) {
beanDefinitionMap.put(name, beanDefinition);
}
}
3. 初始化并使用
public class BeanFactoryTest {
@Test
public void test() {
// 1.初始化beanfactory
BeanFactory beanFactory = new BeanFactory();
// 2.注入bean
BeanDefinition beanDefinition = new BeanDefinition(new HelloWorldService());
beanFactory.registerBeanDefinition("helloWorldService", beanDefinition);
// 3.获取bean
HelloWorldService helloWorldService = (HelloWorldService) beanFactory.getBean("helloWorldService");
helloWorldService.helloWorld();
}
}