Bean对象不同的方式注入,是不同的annotation接口描述
假设的两个类:
第一个
package biz.baijing.definition;import ...@Configuration
public class BaiJingConfig {@Bean // ConfigurationClassBeanDefinitionReader$ConfigurationClassBeanDefinitionpublic String bjConf() {return "Baijing Configuration";}
}
第二个
package biz.baijing.definition;import ...@Component // ScannedGenericBeanDefinition
public class BaiJing {
}
演示的结果
package biz.baijing;import ...@SpringBootApplication
public class BizBaiJingApplication
{public static void main( String[] args ){ConfigurableApplicationContext run = SpringApplication.run(BizBaiJingApplication.class, args);// 获取 BeanDefinition 对象ConfigurableListableBeanFactory beanFactory = run.getBeanFactory();//class org.springframework.context.annotation.ScannedGenericBeanDefinitionBeanDefinition baiJing = beanFactory.getBeanDefinition("baiJing"); //class org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader$ConfigurationClassBeanDefinitionBeanDefinition bjConf = beanFactory.getBeanDefinition("bjConf");System.out.println(baiJing.getClass());System.out.println(bjConf.getClass());}
}
@Bean
ScannedGenericBeanDefinition
@Componet
@Service
@Controller
……
ConfigurationClassBeanDefinition