Spring
文章平均质量分 93
Spring相关
做猪呢,最重要的是开森啦
哈哈哈干活
展开
-
Spring循环依赖 | Spring三级缓存 | 看完必有收获
0. 举个栗子:1. Bean创建过程及循环依赖解决: 1.1. BeanServiceA的创建: 1.1.1. 实例化BeanServiceA不完整对象: 1.1.2. 属性填充BeanServiceB: 1.1.2.1. 循环依赖处理属性填充BeanServiceA: 1.1.2.1.1. AbstractAutoProxyCreator#getEarlyBeanReference:0. 举个栗子: 所谓循环依赖,就是A中依赖了B,而B又依赖了A,如下@Servicepublic.原创 2021-09-15 22:35:02 · 1489 阅读 · 4 评论 -
SpringBoot -- 自动配置类AopAutoConfiguration解析、注册BeanDefinition过程 | Aop默认使用Cglib代理过程
在上一篇文章2.5.2.2节介绍了grouping.getImports()会获取所有符合的自动配置类名· 然后循环遍历调用processImports来对自动配置类进行处理 本文以AopAutoConfiguration为栗子,对自动配置类的解析和注册再详细介绍一下0. AopAutoConfiguration: 先大概说明下@ConditionOnXXX原理:如果条件匹配,则条件结果对象ConditionOutcome的内部属性match为true,即该组件允许引入@.原创 2021-08-17 22:42:22 · 1776 阅读 · 0 评论 -
SpringBoot -- SpringBoot的启动整体过程 | 自动配置类解析注册过程 | Spring5 源码解析
0. 举个栗子:1. applyMergedBeanDefinitionPostProcessors: 1.1. AutowiredAnnotationBeanPostProcessor#postProcessMergedBeanDefinition 1.1.1. findAutowiringMetadata: 1.1.2. buildAutowiringMetadata: 1.1.3. ReflectionUtils#doWithLocalFields: 1.1.4. populateBean.原创 2021-08-15 23:48:41 · 697 阅读 · 0 评论 -
初识Spring源码(4) -- initializeBean | @PostConstruct | afterPropertiesSet | @Resource
0. 栗子:4.1 initializeBean:0. 栗子:@Componentpublic class SetterBean implements InitializingBean { @Resource(name = "beanService1") private BeanService beanService; @Override public void afterPropertiesSet() throws Exception { Sys.原创 2021-08-05 22:09:33 · 563 阅读 · 0 评论 -
初识Spring源码(3) -- doResolveDependency | findAutowireCandidates | @Order、@Priority调用排序 | @Autowired注入
0. 举个栗子:@Componentpublic class SetterBean { @Autowired private BeanService beanService;}@Configurationpublic class ConfigurationBean { @Bean(autowireCandidate = false) public BeanService beanService1() { return new BeanServi原创 2021-07-29 21:04:15 · 1267 阅读 · 0 评论 -
初识Spring源码(2) -- 属性填充populateBean | 静态属性注入
0. 举个栗子:2. populateBean: 2.1. postProcessAfterInstantiation: 2.1. resolvedAutowireMode: 2.3. postProcessProperties: 2.4. metadata.inject: 2.5. element.inject : 2.6. 小结:0. 举个栗子:@Componentpublic class SetterBean { @Autowired private BeanService b.原创 2021-07-22 22:19:15 · 550 阅读 · 3 评论 -
初识Spring源码(1) -- applyMergedBeanDefinitionPostProcessors
0. 举个栗子: 本版本源码为SpringBoot - 2.3.3.RELEASE,即spring-beans: 5.2.8.RELEASE· 主要通过学习@Autowired注入过程来学习Bean创建生命周期· 主要源码入口:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean@Componentpublic class SetterBean { //原创 2021-07-20 21:25:30 · 1040 阅读 · 0 评论 -
Bean实例的创建 | 构造器的挑选 | createBeanInstance基本功能
public class BeanServiceImpl implements BeanService {}@Configurationpublic class ConfigurationBean { @Bean public BeanService beanService() { BeanServiceImpl beanService = new BeanServiceImpl(); System.out.println("beanService:原创 2021-04-18 17:19:22 · 409 阅读 · 1 评论