🔥 Solon Ioc 的魔法 – 注解注入器(也可叫虚空注入器)

很多人惊叹于 Solon 的注入能力,一个注解怎可注万物???

一、注解注入器

Solon Ioc 的四大魔法之一:注解注入器(BeanInjector<T extends Annotation>)。在扫描时,Solon 会检查相关组件的字段或者参数,上面有没有注解?如果有注解,有没有对应的注入器注册过?如果有,则执行注入器。

注解一般也叫元数据,是一种代码级别的说明性内容。编译器在编译时,可以借助注解产生很多魔法效果;Solon Ioc 在运行时,也借助注解产生了很多魔法效果。

其中,注解注入器便是 Solon Ioc 的四大魔法之一。

其中:

二、为什么也可叫“虚空”注入器?

这个是因为,Solon 的注入是执行一个接口,而不是即定的内容。内容,可以是现成的,也可以是动态构建的。所以很“虚空”。

@Inject 的简单使用示例

注入器的能力实现剖析(简单的示意实现,框架的实现比这个复杂)

Solon 内置的注入器,你不喜欢?

想换掉实现行不行?行!完全换掉代码太多,想为特定的类型增加注入行不行?也行!比如,我们设计了一个 EsMapper<T> 用于操作 Elasticsearch。然后可以自由的扩展:

估计还会想扩展更多的子类?“类型增强” 注入器在手,一切我有。

可以再借用容器的“缓存”特性,同类型的注入性能就提高了:

如果有“多源”的概念,我们还可以支持 @Inject(“name”):

现在我们可以用了(吃饭喽,下班喽!):

未经允许不得转载:岩猫星空网 » 🔥 Solon Ioc 的魔法 – 注解注入器(也可叫虚空注入器)