Spring笔记

Spring笔记

💡 原文中文,约17700字,阅读约需42分钟。
📝

内容提要

Spring是一个容器和生态系统,提供IOC、AOP、MVC等核心模块。Spring AOP基于动态代理,AspectJ AOP基于字节码操作。Spring IOC用于解耦和管理对象的生命周期。Bean的创建过程包括生成BeanDefinition、实例化对象、填充属性、执行初始化方法和后置处理器。Aware接口和@Autowired注解都可获取容器相关信息,但实现原理不同。BeanFactory是Spring的基础接口,FactoryBean是特殊Bean。循环依赖问题可通过分开实例化和初始化解决。AbstractApplicationContext的refresh()方法包含准备工作、创建BeanFactory、定制修改、加载BeanDefinitions等关键步骤。Spring使用AutowiredAnnotationBeanPostProcessor后置处理器实现@Autowired注解功能。Bean的初始化方法执行顺序为@PostConstruct注解方法、InitializingBean接口方法、@Bean(initMethod='init')注解方法。单例对象中注入其他scope属性失效问题可通过懒加载、代理模式、ObjectFactory和applicationContext解决。Spring使用AspectJ和JDK动态代理实现AOP功能,Cglib代理用于无法被动态代理的情况。Springboot启动流程包括创建SpringApplication、调用run方法、获取Bean Definition源、推断应用类型、创建ApplicationContext初始化器和监听器、推断主类、保存参数、获取环境变量、输出banner信息、创建容器、准备容器、执行Runner等步骤。设计模式在Spring中广泛应用。

🎯

关键要点

  • Spring是一个容器和生态系统,提供IOC、AOP、MVC等核心模块。

  • Spring AOP基于动态代理,AspectJ AOP基于字节码操作。

  • Spring IOC用于解耦和管理对象的生命周期。

  • Bean的创建过程包括生成BeanDefinition、实例化对象、填充属性、执行初始化方法和后置处理器。

  • Aware接口和@Autowired注解都可获取容器相关信息,但实现原理不同。

  • BeanFactory是Spring的基础接口,FactoryBean是特殊Bean。

  • 循环依赖问题可通过分开实例化和初始化解决。

  • AbstractApplicationContext的refresh()方法包含准备工作、创建BeanFactory、定制修改、加载BeanDefinitions等关键步骤。

  • Spring使用AutowiredAnnotationBeanPostProcessor后置处理器实现@Autowired注解功能。

  • Bean的初始化方法执行顺序为@PostConstruct注解方法、InitializingBean接口方法、@Bean(initMethod='init')注解方法。

  • 单例对象中注入其他scope属性失效问题可通过懒加载、代理模式、ObjectFactory和applicationContext解决。

  • Spring使用AspectJ和JDK动态代理实现AOP功能,Cglib代理用于无法被动态代理的情况。

  • Springboot启动流程包括创建SpringApplication、调用run方法、获取Bean Definition源、推断应用类型、创建ApplicationContext初始化器和监听器、推断主类、保存参数、获取环境变量、输出banner信息、创建容器、准备容器、执行Runner等步骤。

  • 设计模式在Spring中广泛应用。

🏷️

标签

➡️

继续阅读