栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

手撸spring01: 创建简单Bean容器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

手撸spring01: 创建简单Bean容器

spring是怎么去管理bean的呢?学习一下手撸spring.

第一步先来简单的实现一个Bean容器的注册与获取

所谓容器就是能够存储元素的结构就是容器, 例如List, Set 和Map

在Spring Bean容器的场景下, 需要存放名称为索引的数据结构, HashMap就是个合适的选择, 工厂模式一般也都是这么搞的.

先画个图

那个Bean没有那么重要,第一步先来创建BeanDefinition,因为是简单版,一开始就只有一个bean,后续会慢慢加入其他的属性

@Data
@AllArgsConstructor
public class BeanDefinition {
    private Object bean;
}

然后是bean工厂, 一个是容器, 然后就是注册和获取方法

public class BeanFactory {
    
    private Map beanDefinitionMap = new ConcurrentHashMap<>();

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

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

然后是简单的bean

public class UserService {

    public void queryUserInfo(){
        System.out.println("查询用户信息");
    }
}

然后我们来简单的走一下流程

@Test
public void test1(){
    //创建bean工厂
    BeanFactory beanFactory = new BeanFactory();

    //定义一个UserService
    BeanDefinition beanDefinition = new BeanDefinition(new UserService());

    //将定义注册到bean工厂中
    beanFactory.registerBeanDefinition("userService",beanDefinition);

    //通过bean名 到工厂中获取bean
    UserService userService = (UserService) beanFactory.getBean("userService");

    userService.queryUserInfo();
}

这就是简单的一个bean管理容器的过程了, 可以很容易的去了解一下其流程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号