创建简单的bean容器
主要是两个类,一个是beanDefinition,一个是beanFactory
- BeanDefinition:bean的定义->主要的功能是存放bean对象
- BeanFactory:bean工厂->主要是存放bean以及获取对应的bean
容器类关系
public class BeanDefinition {
/**
* bean
*/
private final Object bean;
public BeanDefinition(Object bean) {
this.bean = bean;
}
public Object getBean() {
return bean;
}
}
public class BeanFactory {
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>();
public Object getBean(String name) {
return beanDefinitionMap.get(name).getBean();
}
public void registerBeanDefinition(String name, BeanDefinition beanDefinition) {
beanDefinitionMap.put(name, beanDefinition);
}
}
测试类
public class UserService {
public void queryUserInfo(){
System.out.println("查询到用户信息了");
}
}
public class ApiTest {
@Test
public void test_BeanFactory() {
// 1.初始化beanFactory
BeanFactory beanFactory = new BeanFactory();
// 2.注册bean
BeanDefinition beanDefinition = new BeanDefinition(new UserService());
beanFactory.registerBeanDefinition("userService", beanDefinition);
// 3.获取bean
UserService userService = (UserService)beanFactory.getBean("userService");
userService.queryUserInfo();
}
}