网站页面那个图怎么做,工信部门备案网站,营销策划岗位职责,网站建设维护 天博网络一、Spring循环依赖三级缓存解决方式
singletonObjects:一级缓存
earlySingletonObjects:二级缓存
singletonFactories:三级缓存
spring如何使用三级缓存解决循环依赖#xff1a;
1.a实例化完成后#xff0c;将a放入三级缓存
2.初始化a#xff0c;又去创建b
3.b实例化…一、Spring循环依赖三级缓存解决方式
singletonObjects:一级缓存
earlySingletonObjects:二级缓存
singletonFactories:三级缓存
spring如何使用三级缓存解决循环依赖
1.a实例化完成后将a放入三级缓存
2.初始化a又去创建b
3.b实例化完成后将b放入三级缓存
4.初始化b又从容器中获取a
5.此时可以从三级缓存中查到a。将半成品a放入二级缓存并从三级缓存移除a最终返回半成品a。开始回溯。
6.b的创建过程回溯完之后b成为正品将b从三级缓存中移除将b放入一级缓存而a还是半成品。
7.a的创建过程回溯完之后a也成为正品将a放入一级缓存并从二级缓存中移除。循环依赖解决。
二、Spring的AOP原理是什么
1.AOP面向切面编程用于在不修改原始代码的情况下向现有应用程序添加新功能。
2.AOP实现原理是基于动态代理和字节码操作的。在编译的时候spring会使用aspect编译器将切片代码编译成字节码文件。在运行时spring会使用jdk动态代理或cglib代理生成代理类这些代理类会在目标对象方法执行前后插入切片代码实现AOP。 三、Spring自动装配原理
1.springboot的自动装配实际上是从spring.factories文件中获取到对应的需要进行自动装配的类并生成相应的bean对象然后将他们交给spring容器进行管理。
通过注解或者一些简单的配置就能在springboot帮助下实现某块功能。
2.大概可以把springbootapplication看作是configuration/enableautoconfiguration/componentscan注解的集合
configuration允许在上下文中注册额外的bean或导入其他配置类
enableautoconfiguration启用springboot的自动配置机制
componentscan扫描被component注解的bean。
3.自动装配的核心功能实现是通过autoconfigurationimportselector类。该类实现了ImportSelector接口也就实现了这个接口中的selectImports方法该方法主要用于获取所有符合条件的类的全限定类名这些类需要被加载到IOC容器中。