随笔分类 -  Spring

摘要:一、spring注册 InfrastructureAdvisorAutoProxyCreator 1、通过 @EnableTransactionManagement 可以看到先把TransactionManagementConfigurationSelector通过@Import注册到spring。 阅读全文
posted @ 2025-04-26 12:57 jock_javaEE 阅读(45) 评论(0) 推荐(0)
摘要:步骤1 前面已经创建了MathCal的代理对象了,我们在调用方法时加一个断点 这里返回的确实是代理对象,这个对象中保存了详细信息(增强器,原始对象等),我们进入bean.add(2, 10) 中,来到 org.springframework.aop.framework.CglibAopProxy.D 阅读全文
posted @ 2025-03-26 03:44 jock_javaEE 阅读(93) 评论(0) 推荐(0)
摘要:步骤1 我们从配置类上的@EnableAspectJAutoProxy 注解入手,进入发现这个注解上又有一个@Import(AspectJAutoProxyRegistrar.class)注解, 了解Spring注解式开发的都知道,@Import是可以导入组件到IOC容器中的,而其中的AspectJ 阅读全文
posted @ 2025-03-25 18:39 jock_javaEE 阅读(47) 评论(0) 推荐(0)
摘要:目录 1、属性介绍 2、传播机制 准备例子 总结 3、原理 4、失效场景 一、属性介绍 1、isolation 属性 事务的隔离级别,默认值为 Isolation.DEFAULT。可选的值有: Isolation.DEFAULT:使用底层数据库默认的隔离级别 Isolation.READ_UNCOM 阅读全文
posted @ 2025-03-24 20:21 jock_javaEE 阅读(299) 评论(0) 推荐(0)
摘要:目录 1、什么是三级缓存 2、三级缓存详解 Bean实例化前 属性赋值/注入前 初始化后 总结 3、怎么解决的循环依赖 4、不用三级缓存不行吗 5、总结 一、什么是三级缓存 就是在Bean生成流程中保存Bean对象三种形态的三个Map集合,如下: 用来解决什么问题 ? 这个大家应该熟知了,就是循环依 阅读全文
posted @ 2025-03-24 00:57 jock_javaEE 阅读(1999) 评论(0) 推荐(1)
摘要:目录 1、XML方式注入 set方式注入 构造方法注入 2、注解方式注入 @Component + @ComponentScan @Configuration + @Bean + @ComponentScan @Import 3、实现ImportBeanDefinitionRegistrar接口 4 阅读全文
posted @ 2025-03-23 22:20 jock_javaEE 阅读(887) 评论(0) 推荐(0)
摘要:目录 1、BeanDefinition 2、BeanDefinitionReader 3、BeanDefinitionRegistry 4、BeanFactory 5、ApplicationContext 6、BeanPostProcessor 7、BeanFactoryPostProcessor 阅读全文
posted @ 2025-03-23 20:21 jock_javaEE 阅读(49) 评论(0) 推荐(0)
摘要:目录 一、容器启动 IOC启动流程 重点 二、扫描并注册BeanDefination 加载并过滤资源 注册BeanDefination 三、BeanFactory后置处理 四、注册Bean后置处理器 五、遍历BeanDefination,实例化单例Bean preInstantiateSinglet 阅读全文
posted @ 2025-03-23 17:34 jock_javaEE 阅读(85) 评论(0) 推荐(0)
摘要:目录 一、AOP结构介绍 @Pointcut 通知 原理 连接点 拦截器 二、Bean介入点 EnableAspectJAutoProxy AspectJAutoProxyRegistrar AnnotationAwareAspectJAutoProxyCreator AbstractAutoPro 阅读全文
posted @ 2025-03-22 17:42 jock_javaEE 阅读(54) 评论(0) 推荐(0)
摘要:一、定义 postProcessBeforeInstantiation 是 Spring AOP 动态代理的核心扩展点,通过提前创建代理对象优化性能,并支持丰富的自定义逻辑(如事务、安全) 二、代码分析 public Object postProcessBeforeInstantiation(Cla 阅读全文
posted @ 2025-03-22 02:02 jock_javaEE 阅读(90) 评论(0) 推荐(0)
摘要:一、定义 resolveBeforeInstantiation 是 Spring 框架中 AbstractAutowireCapableBeanFactory 类的核心方法之一,它在 Bean 的实例化阶段扮演了关键角色。它的核心作用是:在 Bean 的默认实例化流程开始之前,提供一个扩展点,允许开 阅读全文
posted @ 2025-03-21 20:29 jock_javaEE 阅读(95) 评论(0) 推荐(0)
摘要:一、代理不生效导致 1、同一个类中的方法,通过this调用导致失效 同一个类中,addOrder()方法无事务,addOrder2()方法存在事务,addOrder()调用addOrder2() 我们通过外部方法调用addOrder()方法,来完成数据库的插入,通过手动的设置异常order/0,来观 阅读全文
posted @ 2024-12-26 22:01 jock_javaEE 阅读(132) 评论(0) 推荐(0)
摘要:一、事务介绍 事务:数据库中多个操作合并在一起形成的操作序列,事务特征(ACID) 作用: 当数据库操作序列中个别操作失败时,提供一种方式使数据库状态恢复到正常状态(A),保障数据库即使在异常状态下仍能保持数据一致性(C)(要么操作前状态,要么操作后状态) 当出现并发访问数据库时,在多个访问间进行相 阅读全文
posted @ 2024-12-26 16:26 jock_javaEE 阅读(54) 评论(0) 推荐(0)
摘要:一、@Autowired 的实现原理 实现 @Autowired 的关键是:AutowiredAnnotationBeanPostProcessor 在 Bean 的初始化阶段,会通过 Bean 后置处理器来进行一些前置和后置的处理。实现 @Autowired 的功能,也是通过后置处理器来完成的。这 阅读全文
posted @ 2024-11-01 21:06 jock_javaEE 阅读(130) 评论(0) 推荐(0)
摘要:Spring容器的refresh()【创建刷新】 一、prepareRefresh()刷新前的预处理 1、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2、getEnvironment().validateRequiredProperties();检 阅读全文
posted @ 2024-08-25 21:07 jock_javaEE 阅读(70) 评论(0) 推荐(0)
摘要:一. AOP功能测试 ①. pom.xml 依赖导入 ②. 目标类 ③. 切面类 ④. 配置类 ⑤. 测试类 二. AOP原理-@EnableAspectJAutoProxy【开启切面自动化代理】 AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】@EnableA 阅读全文
posted @ 2024-08-23 21:14 jock_javaEE 阅读(59) 评论(0) 推荐(0)
摘要:一、循环依赖问题详解 1、产生循环依赖的流程图 有两个类A和B,A中调用了对象b,B中调用了对象a,在创建A需要b的时候会去创建B,而在创建B的时候又需要a,此时类A还没有创建完成,这样就形成了类A和类B之间依赖关系的闭环 如果想破开这个闭环,突破口就是最后一步的“没有找到A对象”。其实最后一步在容 阅读全文
posted @ 2024-07-30 23:49 jock_javaEE
摘要:一、Bean生命周期的流程图 二、spring的生命周期 spring生命周期中的阶段,包括初始化、使用、销毁。 1、初始化阶段 1)调用bean的构造函数,创建实例; 2)进行参数依赖注入; 3)若实现org.springframework.beans.BeanNameAware接口,则调用Bea 阅读全文
posted @ 2021-05-13 15:37 jock_javaEE 阅读(413) 评论(0) 推荐(0)
摘要:1、介绍两个概念 有状态的bean:对象中有实例变量(成员变量),可以保存数据,是非线程安全的 无状态的bean:对象中没有实例变量(成员变量),不能保存数据,可以在多线程环境下共享,是线程安全的 2、spring的线程安全问题 2.1 我们都知道spring中的bean默认都是单例的,ioc容器中 阅读全文
posted @ 2021-05-13 14:41 jock_javaEE 阅读(1776) 评论(0) 推荐(1)
摘要:@Transactional的属性: isolation-Isolation:事务的隔离级别(与并发相关) noRollbackFor-Class[]:那些异常,事务可以不回滚 noRollbackForClassName-String[](String全类名): rollbackFor-Class 阅读全文
posted @ 2021-04-15 20:33 jock_javaEE 阅读(174) 评论(0) 推荐(0)