干货!深入Spring核心组件原理解析,带你实战开发,吃透微服务

  1. 先将实例的类型参数保存到 beanClass 和 beanClassName,将需要初始化的字段名和值保存到 beanPropertyValues 中,这个过程 Spring 通过控制反转来实现,本文第二小节将予以简要说明

  2. 生成 bean 实例,并利用反射机制将需要初始化的字段值写入 bean 实例,将实例保存在 bean 中,完成 BeanDefinition 的构建。

假设我们已经完成了步骤 1) 的操作,之后的过程用代码表述如下所示。

public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition){

//生成 bean 实例,并完成初始化

Object bean = createBean(beanDefinition);

//将 bean 实例保存在 beanDefinition 中

beanDefinition.setBean(bean);

//将 beanDefinition 实例保存在 Spring 容器中

beanDefinitionMap.put(beanName, beanDefinition);

}

protected Object createBean(BeanDefinition beanDefinition) {

try{

Object bean = beanDefinition.getBeanClass().newInstance();

try {

setBeanPropertyValues(bean, beanDefinition);

} catch (NoSuchFieldException | SecurityException | IllegalArgumentException e) {

e.printStackTrace();

}

return bean;

}catch(InstantiationException e){

e.printStackTrace();

}catch(IllegalAccessException e){

e.printStackTrace();

}

return null;

}

protected void setBean

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值