[源码系列:手写spring] IOC第一节:简单bean容器

本专栏带领大家手写一遍spring的核心代码,包括IOC,AOP,三级缓存...
第一节较为简单,后面的章节会逐渐提升代码量和复杂度,喜欢的同学记得订阅哦  ̄▽ ̄

定义一个简单的bean容器BeanFactory,内部包含一个map用以保存bean,包含注册bean和获取bean两个方法

BeanFactory

public class BeanFactory {
    private Map<String,Object> beanContext = new HashMap<>();

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

    /**
     *  所谓注册bean,就是将bean放入容器
     * @param name
     * @param bean
     */
    public void registerBean(String name,Object bean){
        beanContext.put(name,bean);
    }
}

测试

public class SimpleBeanContainerTest {
    @Test
    public void test() {
        BeanFactory beanFactory = new BeanFactory();
        beanFactory.registerBean("userService", new UserService());
        UserService userService = (UserService)beanFactory.getBean("userService") ;
        userService.sayHello();
    }
    class UserService{
        public void sayHello(){
            System.out.println("helloWord");
        }
    }
}

测试结果

helloWord

Process finished with exit code 0

posted @ 2023-02-20 14:04  yihuiComeOn  阅读(12)  评论(0)    收藏  举报  来源