Java SPI详解:https://www.cnblogs.com/jy107600/p/11464985.html
一般API都是接口的意思,是用于类的实现规范和约束。一旦基于该接口实现了不同的类。那么彼此类之间不一定通用。。
但是SPI接口则不同。
参考:https://www.jianshu.com/p/46b42f7f593c https://www.jianshu.com/p/344c00f8f550
Pluggable extension that can be used to filter out an extension point implementation before it gets returned by GeoServerExtensions#extensions(Class)
可插拔的扩展,用来过滤掉一个extension point实现,在它被GeoServerExtensions#extensions返回之前。
public interface ExtensionFilter {
/** * If any registered ExtensionFilter returns true the bean in question will be removed from the list returned by GeoServerExtensions#extensions(Class)
如果已经注册过了,就不需要重新注册,所以要从扩展列表中删除。
@param beanId The bean id as registered in the Spring context, or null if the bean is coming from the GeoTools SPI bridge
参数beanId:如果是在Spring上下文中注册的话那么就是bean id,如果是从GeoTools SPI中来的,那么将为null。(未注册为bean之前beanid为null)
@param bean The bean itself
参数bean:bean本身。
@return true to exclude
返回值:如果是true代表需要从列表中删除
*/
boolean exclude(String beanId, Object bean);
}