启动项目打印结果如下:
新增实现类BlackDog
public class BlackDog implements Dog {
@Override
public String dogName() {
return '黑色Dog';
}
}
selectImports方法返回String[],需要加入IOC容器进行管理的类都可以添加到数组之中,参数是AnnotationMetadata类型的,实现了ClassMetadata,AnnotatedTypeMetadata类,所以可以对@Import注解引入ImportSelector实现类所在的类上的注解及类实例本身进行操作,可以在selectImports方法中进行各种逻辑上的处理;
新增实现类YellowDog
public class YellowDog implements Dog {
@Override
public String dogName() {
return '黄色Dog';
}
}
看下ImportSelector通达信二次开发接口java,接口的源码
package org.springframework.context.annotation;
import org.springframework.core.type.AnnotationMetadata;
public interface ImportSelector {
/**
* Select and return the names of which class(es) should be imported based on
* the {@link AnnotationMetadata} of the importing @{@link Configuration} class.
*/
String[] selectImports(AnnotationMetadata importingClassMetadata);
}
新增一个接口Dog
文章为作者独立观点,不代表观点