如何使用lambda实现ComponentScan的CUSTOM筛选器?

时间:2019-10-19 02:16:20

标签: java spring lambda

@ComponentScan与自定义过滤器一起使用时,代码应如下所示:

@ComponentScan(includeFilters = {@ComponentScan.Filter(
type = FilterType.CUSTOM, value = {**TypeFilterImpl**.class})})

但是当看TypeFilter时:

@FunctionalInterface
public interface TypeFilter {
    boolean match(MetadataReader var1, MetadataReaderFactory var2) throws IOException;
}

正如@FunctionalInterface所说,使用lambda似乎是一种完美的情况。但是然后我们有了这个:

@interface Filter {
    Class<?>[] value() default {};
}

这意味着@ComponentScan.@Filter.value仅接受Class<?>[],而不接受典型的@FunctionalInterface带注释的lambda类。

因此,如果必需的参数为Class,则可以使用lambda吗?如果没有,您将如何更新此Filter类以支持它?

0 个答案:

没有答案