做个spring-实现Bean对象的的定义、注册、和获取

用到的类和类的职责

接口 BeanFactory

定义 Bean 工厂接口

		方法  getBean(String Name)

BeanDefinition

定义 Bean 实例信息

接口 SingletonBeanRegistry

单例 Bean 注册表

		方法  getSingleton(String beanName)

DefaultSingletonBeanRegistry

通用的注册表实现

		属性
				singletonObjects:  Map<String, Object>
		实现方法
				getSingleton(String beanName)
		自己的方法
				addSingleton(String beanName, Object singletonObject)

抽象类 AbstractBeanFactory

实现BeanFactory 继承DefaultSingletonBeanRegistry
抽象的 Bean 工厂基类,定义模板方法

		实现方法
				getBean       实现BeanFactory的方法
		自己的抽象方法
		 		getBeanDefinition(String beanName)
				createBean(String beanName, BeanDefinition beanDefinition)

AbstractAutowireCapableBeanFactory

继承AbstractBeanFactory
实现默认bean创建的抽象bean工厂超类

		重写的方法
				createBean(String beanName, BeanDefinition beanDefinition)

接口 BeanDefinitionRegistry

Bean 定义注册接口

		方法
				registerBeanDefinition(String beanName, BeanDefinition beanDefinition)

核心实现类 DefaultListableBeanFactory

继承AbstractAutowireCapableBeanFactory实现BeanDefinitionRegistry
默认的Bean工厂实现类

		属性
				beanDefinitionMap :  Map<String, BeanDefinition>
		实现方法
				registerBeanDefinition(String beanName, BeanDefinition beanDefinition)
		重写方法
				getBeanDefinition(String beanName)

开始做spring,实现Bean对象的的定义、注册、和获取

Bean对象的定义
BeanDefinition定义 Bean 实例信息

public class BeanDefinition {
   

    private Class beanClass;

    public BeanDefinition(Class beanClass) {
   
        this.beanClass = beanClass;
    }

    public Class getBeanClass() {
   
        return beanClass;
    }

    public void setBeanClass(Class beanClass) {
   
        this.beanClass = beanClass;
    }

}

基于工厂模式,我们先创建出BeanFactory接口,getBean()方法用于获取实例化Bean
BeanFactory

public interface BeanFactory {
   

    /**
     * 返回 Bean 的实例对象
     * @param name 要检索的bean的名称
     * @return 实例化的 Bean 对象
     * @throws BeansException 不能获取 Bean 对象,则抛出异常
     */
    Object getBean(String name) throws BeansException;

}

因为要实现单例模式
创建一个单例 Bean 注册表SingletonBeanRegistry接口

public interface SingletonBeanRegistry {
   

    /**
     * 返回在给定名称下注册的(原始
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值