开发过程中,我们会引入很多工具类,在pom.xml引入,idea中external libraries可以看到引入jar的源码。但是我们要重写jar中的某个方法怎么办呢?下面将介绍其中一种方法:
@ComponentScan过滤不需要注入的类
@ComponentScan 注解默认会扫描该类所在的包下所有的配置类,其中ComponentScan下有两个注解includeFilters和excludeFilters
includeFilters:指定扫描时需要实例化的类型
excludeFilters:指定扫描时需要过滤的类
因此我们可以启动类上利用excludeFilters过滤需要重写的类,然后在source里面新建包,就可以重写了
@ComponentScan(basePackages = {"com.lzy.oa"},
excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {OperationLogAuditEventRepository.class})})
basePackages为指明需要扫描的包,excludeFilters指明过滤的类,type是指按哪种类型来过滤,classes则为具体的类。
说到FilterType,有如下五种类型
public enum FilterType {
ANNOTATION,//按照注解方式
ASSIGNABLE_TYPE,//按照指定类型的方式
ASPECTJ,//使用ASPECTJ表达式的方式
REGEX,//利用正则表达式进行指定
CUSTOM//自己实现TypeFilter接口进行自定义规则
}
然后将OperationLogAuditEventRepository类从jar复制出来,就可以在里面进行修改了。
标签:包中,SpringBoot,FilterType,jar,ComponentScan,过滤,excludeFilters,重写
来源: https://blog.csdn.net/qq_41937388/article/details/110379491