4、组件注册-自定义TypeFilter指定过滤规则

4.1 FilterType.ANNOTATION 按照注解方式

4.2 FilterType.ASSIGNABLE_TYPE 按照给定的类型

@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {BookService.class})

4.3 FilterType.ASPECTJ 按照ASPECTJ表达式

4.4 FilterType.REGEX 按照正则表达

4.5 FilterType.CUSTOM 按照自定义规则

@ComponentScan(value = "com.hw.springannotation", useDefaultFilters = false,includeFilters = {
//        @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Controller.class}),
//                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {BookService.class}),@ComponentScan.Filter(type = FilterType.CUSTOM, classes = {MyTypeFilter.class})}
)       // 指定只扫描
  • 创建MyTypeFilter类,需要实现TypeFilter 接口,重写match()方法
package com.hw.springannotation.config;import org.springframework.core.io.Resource;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.ClassMetadata;
import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.core.type.filter.TypeFilter;import java.io.IOException;/*** @Description TODO* @Author hw* @Date 2018/11/27 18:49* @Version 1.0*/
public class MyTypeFilter implements TypeFilter {/*** Determine whether this filter matches for the class described by* the given metadata.** @param metadataReader        the metadata reader for the target class    读取到得当前正在扫描的类的信息* @param metadataReaderFactory a factory for obtaining metadata readers    一个可以探索其他类信息的工厂类*                              for other classes (such as superclasses and interfaces)* @return whether this filter matches* @throws IOException in case of I/O failure when reading metadata*/public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {// 获取当前类的注解信息AnnotationMetadata annotationMetadata = metadataReader.getAnnotationMetadata();// 获取当前类信息ClassMetadata classMetadata = metadataReader.getClassMetadata();// 获取当前类的资源(类的路径)Resource resource = metadataReader.getResource();String className = classMetadata.getClassName();System.out.println("----" + className);if (className.contains("er")) {return true;}return false;}
}

转载于:https://www.cnblogs.com/Grand-Jon/p/10018643.html

4、组件注册-自定义TypeFilter指定过滤规则相关推荐

  1. 组件注册_使用_命名规则_以及Nacos中给每个服务配置访问前缀---SpringCloud Alibaba_若依微服务框架改造---工作笔记004

    使用某个组件,比如我要使用: components文件夹中的Rouyi这个文件夹下的组件的话, import RouYiGit from '@/components/Rouyi/Git' import ...

  2. spring注解--组件注册

    组件注册 1.@Configuration , @Bean 1)xml方式 <?xml version="1.0" encoding="UTF-8"?&g ...

  3. Logback中如何自定义灵活的日志过滤规则

    当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现: ch.qos.logback.classi ...

  4. logback日志pattern_Logback pattern transactionid 中如何自定义灵活的日志过滤规则

    当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现:ch.qos.logback.classic ...

  5. abp过滤规则android,撰写 Adblock Plus 过滤规则

    当前的 Adblock Plus 版本允许您通过许多不同的方法来优化过滤规则.本文档就是告诉您如何做. 声明:这里给出的过滤规则只是示例,不一定能直接使用. AdBlock Plus 过滤规则介绍 本 ...

  6. adblock plus过滤规则介绍

    (整理自adblock 官网) 基本过滤规则 最简单的过滤规则当然就是您想阻挡的横幅广告地址,但是这些地址常常会在您每次打开页面时改变.例如: http://example.com/ads/banne ...

  7. Adblock plus 过滤规则

    整理自官方规则 AdBlock Plus 过滤规则介绍 基本过滤规则 最简单的过滤规则当然就是您想阻挡的横幅广告地址,但是这些地址常常会在您每次打开页面时改变.例如: http://example.c ...

  8. 02-组件注册-@ComponentScan-自动扫描组件指定扫描规则

    目录 1.配置文件方式:加入context命名空间导入到配置文件 2.主配置类方式:配置类中添加自动扫描组件注解 @ComponentScan 实际在开发中包扫描用的比较多,注解为@Component ...

  9. 组件注册——@ComponentScan自动扫描组件指定扫描规则

    包扫描.只要标注了@Controller.@Service.@Repository,@Component IOCTest.java package com.atguigu.test;import or ...

  10. adblock plus 增加自定义过滤规则,禁止弹出广告网页和隐藏广告块

    电影下载网站,经常会有嵌入广告,比如点击页面任何地方,都会弹出其它的彩票/游戏网站. 或者在页面中有很多个广告块,游戏视频,彩票网站,购物广告. 即便开启了adblock plus,仍然能看到一些广告 ...

最新文章

  1. 碾压Bert?“屠榜”的XLnet对NLP任务意味着什么
  2. 深度学习入门Fast.ai 2.0上线!自带中文字幕,所有笔记、资源全部免费!
  3. badboy 2.2.5 安装包
  4. 前海理想金融联手云信,共促互联网金融领域变革
  5. Light-Head R-CNN相关资料
  6. php什么集成框架比较好,php哪个框架比较好?
  7. char* 去除后面几个字符_【算法打卡】去除重复字母
  8. css通配选择符用什么表示,css3选择符使用个人理解。
  9. 关于信息安全工作方法论的一点猜想
  10. 【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
  11. 漏洞情报 | VMware Tools、VMRC 及 VMware App Volumes 本地提权漏洞
  12. 计算机组成原理(微课版 谭志虎)试题及答案
  13. 11种职场肢体语言,你懂吗
  14. grammarly word安装失败
  15. Linux从入门到跑路
  16. 同一局域网下,手机能连上wifi,电脑连不上
  17. CSS3实现3D立体效果
  18. 产品负责人(Product Owner)的主要职责和技能
  19. rpa 手机_RPA
  20. clickhouse 生产集群部署之坑坑洼洼(三)

热门文章

  1. 如何用php开启企业微信开发的回调模式
  2. xapian_binaries
  3. mysql 跨数据库联表查询
  4. FLAT:又快又好的中文命名实体识别模型
  5. 推荐算法竞赛TOP解决方案汇总
  6. 独家专访@爱可可-爱生活:如何做好科学研究(干货满满)
  7. 【智能医疗】48页论文详述医学AI最新进展
  8. 统计学习方法读书笔记2-极大似然估计与梯度下降法
  9. Python机器学习:通过scikit-learn实现集成算法
  10. Mesos超配:让集群利用率可以达到100%