借助ImportBeanDefinitionRegistrar接口实现bean的动态注入
spring官方就是用这种方式,实现了@Component
、@Service
等注解的动态注入机制。定义一个ImportBeanDefinitionRegistrar的实现类,然后在有@Configuration
注解的配置类上使用@Import
导入
registerBeanDefinitions方法中有一个AnnotationMetadata类型的参数,可以调用getAnnotationAttributes方法来获取信息
Map<String, Object> getAnnotationAttributes(String annotationName);