bean容器放在bean工厂中 bean工厂中有一个HashMap(bean的名称 和 bean本身来存放bean)bean是Object类型的
public class BeanFactory {
private Map<String, Object> beanMap = new HashMap<>();
public void registerBean(String name, Object bean) {
beanMap.put(name, bean);
}
public Object getBean(String name) {
return beanMap.get(name);
}
}
对上述代码进行测试 HelloService是一个bean
@Test
public void testGetBean() throws Exception {
BeanFactory beanFactory = new BeanFactory();
beanFactory.registerBean("helloService", new HelloService());
HelloService helloService = (HelloService) beanFactory.getBean("helloService");
assertThat(helloService).isNotNull();
assertThat(helloService.sayHello()).isEqualTo("hello");
}
class HelloService {
public String sayHello() {
System.out.println("hello");
return "hello";
}
}
面试题
1.什么是BeanFactory,BeanFactory有哪些实现函数?
BeanFactory是一种Bean工厂,可以用来注册Bean,并且管理Bean,其中有一个Map以<姓名,键值对>存放了很多Bean对象。实现函数有registerBean 注册bean对象和获取Bean对象
2.什么是注册Bean对象?
就是把Bean对象放入Bean容器的过程
2.为什么要有bean对象?
其本质与普通对象没有大的区别,但可以被很容易的复用