spi与adaptive:
当在实现类上注解Adaptive类的时候,优先级最高,调用的时候只会走该实现类;
当SPI有注解value,Adaptive也注解value的时候,用URL里面参数去匹配Adaptive里面的value;如果匹配到了那么就走Adaptive里面value指定的实现类;如果没找到就使用SPI默认指定的实现类;
当SPI上有注解,Adaptive没有的时候,就使用SPI上指定的实现类;
当SPI注解中有value值,URL中也有具体的值,使用SPI默认指定的实现类;
总结:URL中的参数值用来匹配Adaptive的value,如果value没找到或者Adaptive就没有配value,那么URL的参数值等于没用;
实现类上注解Adaptive > URL中的参数值匹配到Adaptive的value值 > SPI有注解value
网友评论