为什么需要Bean定义
我们知道Spring框架的核心是它内部的Bean工厂(在设计模式上来说也称之为IOC容器), 当我们要使用某一个在工厂托管的Bean时,工厂会帮助我们去生成,注入依赖,初始化等一系列行为,最后返回一个符合我们期望的Bean,那工厂怎么知道他要生成什么,注入哪些依赖,初始化什么呢,这就需要我们先有一个Bean定义告诉工厂我们需要怎样的Bean,其他的慢慢来也不急。
抽象的Bean定义
我们试想一下,所有的Bean是不是有一些通用的属性可以抽象出来呢?简单想想,最先想到的有是否单例,属性集合,其他一些先等等不急。那首先我们得把属性定义下吧。
属性
属性一般由属性名称和属性值构成,属性值也需要通用,那就先声明为Object类型吧,简单点:
1 | public class PropertyValue { |
接下来那需要有一个集合来把Bean的所有属性集合在一起了,集合起来有啥好处呢?可以根据名称方便 获取的获取到对应的属性啊!我们知道Java中List,Set都是接口,那这边我们索性也做成集合接口吧,取名为PropertyValues:
1 | public interface PropertyValues { |
手续齐全了,到这里我们就可以定义一个AbstractBeanDefinition了:
1 | public class AbstractBeanDefinition { |
简单吧,我们把一个工厂需要的最简单的Bean定义给整出来了。接下来我们还得添加点什么呢?请看下篇。