个人学习Spring @Enable 模块驱动(二.接口编程实现)笔记

    xiaoxiao2025-03-20  29

    个人学习Spring @Enable 模块驱动(二.接口编程实现)笔记

     

    在上一篇中我们学习了,怎么使用注解来实现@Enable模块驱动,这篇我们讲解下怎么使用接口编程实现这一功能。同样的还是去找一个Spring自己的实现作为一个参考,比如说@EnableCache

    从@EnableCaching中可以看出在Import中import了一个叫CachingConfigurationSelector的类,我们进一步去看看这个类

    我们可以看到这个类又继承了

    在AdviceModeImportSelector中我们看到了他实现了ImportSelector接口

    我们再进一步看其实这个接口就一个定义了一个方法

    所以一般在他的实现类中能找到这个方法的实现

    所以我们也可以参照种实现来自己实现一个简易版的。

    首先我们定义要注入的bean

    我们自己定义一个类并且实现ImportSelector 并重写其方法

    或许有人就要问了为什么返回这个类名就可以获取到里面的注入的bean了呢?

    从这个我们就可以看到使用了Spring自己的实现的去解析class文件的一些方法,有兴趣的小伙伴可以去详细读下。

    这儿就是根据名class名字然后拿到一个classSource

    这就是将class转换为SourceClass的地方,有兴趣的大家可以去读下。

    最后他会将处理完的这些东西放入到configurationClass里,这是一个LinkedHashMap

    回到主线我们继续实现我们的,接着我们定义一个注解类@EnableHelloWorld

    现在我们就可以构建测试代码了

    我们可以看到如我们预期的那样,实现了其功能

    写的不对或者不好的地方,请大佬指教,谢谢

    本文参考:springboot 编程思想(核心篇)

    最新回复(0)