SpringBoot重写jar包中的某个方法

开发过程中,我们会引入很多工具类,在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复制出来,就可以在里面进行修改了。

 

你可能感兴趣的:(Spring,Boot)