面向工资编程,现学习 Spring,参考 mini-spring 来学习。
第一章是讲 IoC,这一节的题目是 Bean 容器,什么是 Bean 容器?Bean 容器是 IoC 容器。这里有两个名词:
- Bean
- IoC 容器
什么是 Bean?简而言之,Bean 是 Spring 框架中最基本的单元(如原子于世间万物,不讨论夸克 balabala 等),可以参考文章:Bean 在 Spring 中代表什么含义,为什么这样命名?_暗诺星刻的博客-CSDN博客
那么什么是 IoC 容器?其中 IoC 是什么?
什么 IoC?
根据 Wikipedia 的定义,IoC(控制反转、inversion of control)是一种设计模式。
基本思想就是:借助“第三方”实现,对具有依赖关系的对象进行解耦。
这个第三方实现一般就是指”IoC 容器“。即 IoC 容器的任务就是把存在依赖关系的对象进行解耦。往往,这也意味着,IoC 容器会接管所有对象的控制权,如控制其诞生以及销毁。
那么在 Spring 上,就是用一个 IoC 容器来管理所有的基本元素(Bean)。
对于 IoC 以及 IoC 容器的讲解,推荐文章:你确定懂?彻底搞懂 控制反转(IoC Inversion of Control )与依赖注入(DI Dependency Inversion Principle )_控制反转解耦合-CSDN博客
实验
定义一个简单的 bean 容器 BeanFactory,内部包含一个 map 用以保存 bean,只有注册 bean 和获取 bean 两个方法
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);
}
}
思路:首先我们确定了,Bean 容器是一个容器,所以我们需要容器来存放这些信息。这里用了 HashMap,然后提供了一个用于注册 registerBean
一个用来获取信息 getBean
。