- 博客(8)
- 收藏
- 关注
原创 各个BeanPostProcessor的调用时机
BeanPostProcessor使用的是责任链,大部分是返回为空执行下一个BeanPostProcessor调用BeanDefinitionRegistryPostProcessor的postProcessorBeanDefinitionRegistry方法在调用postProcessorBeanFactory然后调用BeanFactoryPostProcessor的postProcessorBeanFactory。BeanDefinitionRegistryPostProcessor是B.
2021-11-11 04:23:30
525
原创 Spring实现在多个Primary中选择其中一个注入,Spring自动注入属性
for (InstantiationAwareBeanPostProcessor bp : getBeanPostProcessorCache().instantiationAware) {//bean初始化后的操作 PropertyValues pvsToUse = bp.postProcessProperties(pvs, bw.getWrappedInstance(), beanName); if (pvsToUse == null) { if (filtere...
2021-11-10 18:59:55
840
1
原创 spring 类的构造函数自动注入
Constructor<?>[] ctors = determineConstructorsFromBeanPostProcessors(beanClass, beanName); if (ctors != null || mbd.getResolvedAutowireMode() == AUTOWIRE_CONSTRUCTOR || mbd.hasConstructorArgumentValues() || !ObjectUtils.isEmpty(args)) { r...
2021-11-10 02:52:08
517
原创 spring解决循环依赖问题
@SuppressWarnings("unchecked") protected <T> T doGetBean( String name, @Nullable Class<T> requiredType, @Nullable Object[] args, boolean typeCheckOnly) throws BeansException { String beanName = transformedBeanName(name); Object bea.
2021-11-07 23:16:20
274
原创 spring中AbstractApplication的invokeBeanFactoryPostProcessors方法
这个方法会调用PostProcessorRegistrationDelegate类的invokeBeanFactoryPostProcessors方法protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, ge.
2021-11-05 15:07:16
82
原创 AnnotationConfigApplicationContext的默认bean名称(beanName)是怎么创建的?
AnnotationConfigApplicationContext是把注册交给AnnotatedBeanDefinitionReader的,在AnnotatedBeanDefinitionReader有个属性是beaNameGeneratorprivate BeanNameGenerator beanNameGenerator = AnnotationBeanNameGenerator.INSTANCE;BeanNameGenerator此接口有一个方法String generateBe
2021-11-03 01:46:05
296
原创 AnnotationConfigApplicationContext register
register这个方法是解析class成BeanDefinition然后保存BeanDefinition private final AnnotatedBeanDefinitionReader reader; @Override public void register(Class<?>... componentClasses) { Assert.notEmpty(componentClasses, "At least one component class must be
2021-11-03 00:22:09
437
原创 Spring BeanDefinition的作用
BeanDefinition是描述bean的一个接口public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement { //单例常量 String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON;· String SCOPE_PROTOTYPE = ConfigurableBeanFactor..
2021-11-01 14:29:12
663
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人