ImportSelector接口是至spring中导入内部类或者外部类的核心接口,只需要其定义的方法内返回需要创建bean的class字符串就好了,比如:当我们引入一个外部share包,我们拿到里面的Class返回出去,就能得到这个bean,是多么神奇的事情,前提是这个类不是接口哦。
ImportSelector往往结合@Import注解一起使用,可以参考我的这篇文章@Import注解介绍
public interface ImportSelector {
//返回类的字符串数组,也就是要创建的bean的className,比如userService.class.getName()
//被创建的bean是在其他bean(@Component、@Service等注解修饰的Bean)创建之前创建的
String[] selectImports(AnnotationMetadata importingClassMetadata);
}
二、使用案例
通过返回Class的字符串来创建bean
//定义一个业务类
public class UserServiceTest {
public String getUserName(){
return "测试";
}
}
//实现ImportSelector接口
public class MyImportSelect implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
//返回要注册到Spring容器的Class集合
return new String[]{
UserServiceTest.class.getName()};
}
}
//配置类
@Configuration
@Import(MyImportSelect.class) //导入我们实现ImportSelector的类。
public class AppConfigClassTest {
}
测试
public class MainTest {
public static void main(

博客介绍了Spring中ImportSelector接口,它是导入内部类或外部类的核心接口,只需在其定义方法内返回需创建bean的class字符串。该接口常结合@Import注解使用,还给出了通过返回Class字符串创建bean的使用案例,并提及可查看源码实现。
最低0.47元/天 解锁文章
316

被折叠的 条评论
为什么被折叠?



