导入第三方组件
通过@Import来导入组件(导入组件的id为全类名路径)
@Configuration
@Import({Person.class})
public class MainConfig {
}
通过@Import 的ImportSeletor类实现组件的导入 (导入组件的id为全类名路径)
public class MyImportSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{"com.dgr.annotation.import_test.component.Car"};
}
}
@Configuration
@Import({Person.class, MyImportSelector.class})
public class MainConfig {
}
通过@Import的 ImportBeanDefinitionRegister导入组件 (可以指定bean的名称)
public class MyBeanDefinitionRegister implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
// 创建一个bean定义对象
RootBeanDefinition beanDefinition = new RootBeanDefinition(Dog.class);
// 把bean定义对象导入容器中
registry.registerBeanDefinition("dog", beanDefinition);
}
}
@Configuration
@Import({Person.class, MyImportSelector.class, MyBeanDefinitionRegister.class})
public class MainConfig {
}