public class PostProcessorTest {
public static void main(String[] args) {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition(Config.class).setScope("singleton").getBeanDefinition();
beanFactory.registerBeanDefinition(Config.class.getName(),beanDefinition);
for (String beanDefinitionName : beanFactory.getBeanDefinitionNames()) {
System.out.println(beanDefinitionName);
}
Config beforeBean = beanFactory.getBean(Config.class);
System.out.println(beforeBean);
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);
for (BeanFactoryPostProcessor postProcessor : beanFactory.getBeansOfType(BeanFactoryPostProcessor.class).values()) {
System.out.println("--------->BeanFactoryPostProcessor:"+postProcessor);
postProcessor.postProcessBeanFactory(beanFactory);
}
for (String beanDefinitionName : beanFactory.getBeanDefinitionNames()) {
System.out.println(beanDefinitionName);
}
Config createBean = beanFactory.getBean(Config.class);
System.out.println(createBean);
System.out.println("-------------------");
for (BeanPostProcessor postProcessor: beanFactory.getBeansOfType(BeanPostProcessor.class).values()) {
System.out.println("------------>BeanPostProcessor:"+postProcessor);
beanFactory.addBeanPostProcessor(postProcessor);
}
System.out.println(">>>>>>>>>>>>>>>>>>>");
for (String beanDefinitionName : beanFactory.getBeanDefinitionNames()) {
System.out.println(beanDefinitionName);
}
System.out.println(">>>>>>>>>>>>>>>>>>>");
// beanFactory.preInstantiateSingletons();
// System.out.println(beanFactory.getBean(ComponentOne.class));
Config afterBean = beanFactory.getBean(Config.class);
System.out.println("]]]]]]]]]]]]]]]]");
System.out.println(afterBean);
}
@Configuration
@Data
@ToString
public class Config {
@Resource
private ComponentOne componentOne;
@Resource
private ComponentTwo componentTwo;
@Bean
public ComponentOne componentOne(){
return new ComponentOne();
}
@Bean
public ComponentTwo componentTwo(){
return new ComponentTwo();
}
}
我想提问的是为什么Config为什么没有依赖注入?是什么原因造成的