Java学习笔记
文章平均质量分 68
IT大白
初来乍到,请多关照。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring-解决循环依赖源码
(2)二级缓存(HashMap<String, Object> earlySingletonObjects)完成了从三级缓存中Bean工厂中获取到的Bean对象。三级缓存存bean工厂对象,二级缓存存bean代理对象,是为了延迟代理对象的创建时间。(1)通过setter()方法注入的、多例模式对应的循环依赖(多例对象不归容器创建)。(2)构造器循环依赖(实例化、属性注入同时发生,无法通过缓存拿到属性实例)。(1)通过setter()方法注入的、单例模式对应的循环依赖。1、不可以解决的场景。原创 2025-07-26 15:10:54 · 348 阅读 · 0 评论 -
Spring-Ioc源码流程
4、将beanDefinition对象放入ConcurrentHashMap中,key=beanName、value=beanDefinition对象;3、根据配置文件,创建beanDefinition对象,一个<bean>标签创建一个beanDefinition对象。4、对实例化的bean对象进行属性注入,调用populateBean()方法,最后还是调用getBean()方法。2、只处理非抽象的、是单例模式的、非懒加载的beanDefinition对象。3、使用反射机制,实例化bean对象。原创 2025-07-26 13:52:19 · 210 阅读 · 0 评论 -
Spring-事务管理
A开启了事务,B会在A事务中创建一个保存点,B发生异常,B会回滚至保存点,不影响A事务。A开启了事务,B会在A事务中创建一个保存点,A发生异常,整个事务都回滚(不是部分回滚)。支持当前事务后,A、B合并为一个事务,A、B中任意位置发生异常后,A、B同时回滚。加入当前事务后,A、B合并为一个事务,A、B中任意位置发生异常后,A、B同时回滚。加入当前事务后,A、B合并为一个事务,A、B中任意位置发生异常后,A、B同时回滚。挂起A事务,执行B事务,B事务出现异常且未在内部捕获,抛出异常会使A事务回滚。原创 2025-07-23 09:39:39 · 946 阅读 · 0 评论 -
Spring-AOP
Spring中的AOP就是通过动态代理实现的,使用时会根据目标类的形态自动选择JDK或CGLib动态代理(目标类实现了接口就用JDK动态代理,若没有就用CGLib动态代理),可以通过配置指定使用某一种动态代理。同时使用多个切面类,通过在所有切面类上添加@Order(数字)注解,来控制切面执行顺序,数值越小、优先级越高。2、环绕通知(@Around)一般不与其他通知一起使用。1、后置通知(@After)无法获取方法执行的返回值,六、复用切入点表达式步骤(在切面类中)3、编写切面类(要使用。原创 2025-07-22 08:31:40 · 610 阅读 · 0 评论 -
Spring-注解
2、特点:根据类型自动装配,如果存在同类型多个Bean会报错,此时需要通过。(2)后置处理器装载后,容器扫描到属性上标注有。2、定义一个类用于应用自定义注解。4、定义一个后置处理器(1、作用:用于自动装配(依赖注入)。定义修饰在 类/方法 上的自定义注解。在对象初始化后,去包含代理逻辑)注解指定具体的Bean名称。一、@Autowired。容器中自动查找到需要的。@Autowired和。原创 2025-07-20 21:03:05 · 287 阅读 · 0 评论
分享