ImportSelector:返回需要导入到IOC容器组件的全类名数组。
1、pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
</dependencies>
2、实体类
import lombok.Data;
@Data
public class Cat {
private String name;
public Cat() {
System.out.println("cat加入到 IOC容器中");
this.name = "小猫";
}
}
3、编写类实现ImportSelector接口
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;
public class CatImportSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{"com.it.huaxin.vo.Cat"};
}
}
4、配置类
import com.it.huaxin.importselector.CatImportSelector;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Import(value = {CatImportSelector.class})
@Configuration
public class ImportSelectorConfig {
}
5、测试类
import com.it.huaxin.config.ImportSelectorConfig;
import com.it.huaxin.vo.Cat;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class ImportSelectorTest {
public static void main(String [] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ImportSelectorConfig.class);
Cat bean = context.getBean(Cat.class);
System.out.println(bean);
System.out.println("Spring IOC容器创建完成........");
}
}
// 结果:
cat加入到 IOC容器中
Cat(name=小猫)
Spring IOC容器创建完成........