Solon2 开发之IoC,十、Bean 在容器的两层信息

1、剖析 Bean 的装包与注册过程

比如,用配置器装配一个 Bean (本质是装配出一个 BeanWrap,并自动注册到容器):

@Configuration
public class Config{
    //同时以名字和类型进行注册 //支持类型或名字注入
    @Bean(name="demo", typed=true) 
    public DemoService demo(){
        return new DemoServiceImpl();
    }
}

以上代码。转成全手动操控的完整过程如下(内部差不多就这么处理,不要把它用于日常开发):

DemoService bean = new DemoServiceImpl();
BeanWrap bw = new BeanWrap(Solon.context(), DemoServiceImpl.class, bean, "demo", true);

//实现上面配置器的效果,需要四行代码
Solon.context().putWrap("demo", bw);
Solon.context().putWrap("org.demo.DemoServiceImpl", bw);
Solon.context().putWrap(DemoServiceImpl.class, bw);
Solon.context().putWrap(DemoService.class, bw);
//如果是泛型还会有:
Solon.context().putWrap("org.demo.DemoServiceImpl<D>", bw);
Solon.context().putWrap("org.demo.DemoService<T,Y>", bw);

以上注册,我们可以这样获取 BeanWrap:

//这是常用的获取方式
Solon.context().getWrap("demo");
Solon.context().getWrap(DemoService.class);

//也可以
Solon.context().getWrap("org.demo.DemoServiceImpl");
Solon.context().getWrap(DemoServiceImpl.class);

2、Bean 在容器里是有两层信息

从上面的过程,可以得出 Bean 在容器里是有两层信息:

  • 自身包装器的元信息
  • 在容器里的注册信息(一个包装,可以有多条注册记录)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值