public class MyDefineImportSelector implements ImportSelector{
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
//动态导入bean, 告诉了Spring , 两个配置类在哪里
return new String[]{MySqlSessionFactory.class.getName(),
MyRedisConfiguration.class.getName()};
}
}
在数组中配置要加载的类classname,就会把类或者配置类加载到IOC中
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(MyDefineImportSelector.class)
public @interface MyEnableConfiguration {
}
@MyEnableConfiguration
@SpringBootApplication
public class SpringBootDemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext ca=SpringApplication.run(SpringBootDemoApplication.class, args);
System.out.println(ca.getBean(MySqlSessionFactory.class));
}
}