java脑洞 元信息扫描器

脑洞的由来

场景一:基于注解的功能模块,需要扫描相关注解的类
场景二:框架设计中相关联的类集合

元信息扫描器和Spring IOC 扫描器的区别

我们平时要扫描类的时候最常用到的就是spring的scan,但是spring的扫描拿到的是对象,然后我们其实大多只需要获取到对应的Class就可以,这时用元信息扫描器加载的是元消息,因为并未生成对象所以并不占用内存,元信息扫描器还能自定义规则,所以元信息扫描器具备高效和灵活的特性。

更多demo请关注

springboot demo实战项目
java 脑洞
java 面试宝典
开源工具

功能描述

我们直接通过一个测试用例来讲述功能

        ClassScanner scanner = new ClassScanner();
        // 添加过滤器,获取所有继承ClassFilter的类
        scanner.addFilter(SubOfClassFilter.ofInclude(ClassFilter.class));
        // 选定扫描路径
        for (Class<?> data : scanner.getClasses("com.cn.lp")) {
            System.out.println(data);
        }

结果就是

class com.cn.lp.loader.AnnotationClassFilter
class com.cn.lp.loader.ClassExcludeFilter
class com.cn.lp.loader.ClassFilterHelper$1
class com.cn.lp.loader.ClassFilterHelper$2
class com.cn.lp.loader.ClassIncludeFilter
class com.cn.lp.loader.SubOfClassFilter

在上面的例子我们看到scan扫描出来的是Class而不是Object,scan还能自己添加相应的Filter,现有的Filter有下面这几个
image.png

源码项目

https://gitee.com/wqrzsy/lp-demo/tree/master/lp-scan

demo项目导入

参考: https://www.jianshu.com/p/cd0275a2f5fb

#公众号
五分钟了解前沿技术,大数据,微服务,区域链,提供java前沿技术干货,独立游戏制作技术分享

五分钟技术

如果这篇文章对你有帮助请给个star
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值