TintySpring構(gòu)建過程 Step1-簡單容器實現(xiàn)

TintySpring構(gòu)建過程 Step1-簡單容器

  1. 最基本的容器
    • 最基本的容器我們需要的是一個能夠容納我們創(chuàng)建的Bean總統(tǒng)類。我們創(chuàng)建一個BeanFactory
    • 我們對我們要處理的Object進行一層封裝,方便我們做行為(修飾器模式)。我們創(chuàng)建BeanDefinition
    • 這樣我們就實現(xiàn)了一個最簡單的容器

BeanFactory

public class BeanFactory {

    private Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>();

    public Object getBean(String name) {
        return beanDefinitionMap.get(name).getBean();
    }

    public void registerBeanDefinition(String name, BeanDefinition beanDefinition) {
        beanDefinitionMap.put(name, beanDefinition);
    }

}

BeanDefinition

public class BeanDefinition {

    private Object bean;

    public BeanDefinition(Object bean) {
        this.bean = bean;
    }

    public Object getBean() {
        return bean;
    }

}

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();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。