当多个jar包下,都注入了同一个类
//jar1
@Bean
@ConditionalOnMissingBean
@Order
fun teac1():Teac=Teac("qwww",12)
//jar2
@Bean
@Order(Ordered.LOWEST_PRECEDENCE-1)
@ConditionalOnMissingBean
fun teac2():Teac=Teac("dddd",13)
一般我们使用SpringFactories,在META-INF/spring.factories下用org.springframework.boot.autoconfigure.EnableAutoConfiguration实现spring容器扫描,此时那个jar包下的bean会生效呢?
看SpringFactoriesLoader源码
public static <T> List<T> loadFactories(Class<T> factoryClass, ClassLoader classLoader) {
Assert.notNull(factoryClass, "'factoryClass' must not be null");
ClassLoader classLoaderToUse = classLoader;
if (classLoaderToUse == null) {
classLoaderToUse = SpringFactoriesLoader.class.getClassLoader();
}
List<String> factoryNames = loadFactoryNames(factoryClass, classLoaderToUse);
if (logger.isTraceEnabled()) {
logger.t