Spring笔记
原文中文,约17700字,阅读约需42分钟。发表于: 。记得很凌乱,主要是视频都比较乱 The post Spring笔记 appeared first on 我有点酷.
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中广泛应用。