自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 各个BeanPostProcessor的调用时机

BeanPostProcessor使用的是责任链,大部分是返回为空执行下一个BeanPostProcessor调用BeanDefinitionRegistryPostProcessor的postProcessorBeanDefinitionRegistry方法在调用postProcessorBeanFactory然后调用BeanFactoryPostProcessor的postProcessorBeanFactory。BeanDefinitionRegistryPostProcessor是B.

2021-11-11 04:23:30 491

原创 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 785 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 469

原创 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 221

原创 spring中AbstractApplication的invokeBeanFactoryPostProcessors方法

这个方法会调用PostProcessorRegistrationDelegate类的invokeBeanFactoryPostProcessors方法protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, ge.

2021-11-05 15:07:16 59

原创 AnnotationConfigApplicationContext的默认bean名称(beanName)是怎么创建的?

AnnotationConfigApplicationContext是把注册交给AnnotatedBeanDefinitionReader的,在AnnotatedBeanDefinitionReader有个属性是beaNameGeneratorprivate BeanNameGenerator beanNameGenerator = AnnotationBeanNameGenerator.INSTANCE;BeanNameGenerator此接口有一个方法String generateBe

2021-11-03 01:46:05 266

原创 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 368

原创 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 632

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除