
Spring
拉通对齐端到端
这个作者很懒,什么都没留下…
展开
-
Spring AOP及原理
面向切面编程: 是对面向对象的一种补充,将对多个对象产生影响的公共行为和逻辑,抽取出来并封装成一个可复用的模块,使代码更好维护,符合开闭原则。 例如: 日志打印、权限校验、国际化…… 关键概念: Aspect:切面; JoinPoint:连接点,进行切入的位置; Advice:切面在连接点的操作,包括Around、Before、After等; 实现原理: 静态代理:AspectJ就是静态代理,在编译器就生成代理类,织入到Java对象的字节码里,这种方式性能更好; 动态代理:Spr原创 2021-07-09 16:47:23 · 156 阅读 · 0 评论 -
Spring事务传播
Spring的事务通过注解来实现,注解本身都是一种代理模式; 事务传播机制,主要解决在spring中事务嵌套的问题; PROPAGATION_REQUIRED(默认): 如果存在事务,则加入当前事务,如果没有事务,则开启一个新事务; 如果A调用B,B抛了异常,但是A把B try/catch起来了,那A一样回滚,因为B已经加入A的事务,B抛了异常,整个事务就失败了; PROPAGATION_REQUIREDS_NEW: 无论当前存不存在事务,都开启一个新的事务; PROPAGA原创 2021-07-09 16:46:23 · 110 阅读 · 0 评论 -
Spring Bean作用域与声明周期
Bean的作用域 Singleton:默认作用域,单例模式,每个容器只有一个Bean实例; Prototype:原型模式,每次都产生一个新的bean; Request:为每一个请求新建一个bean,请求结束即销毁; Session:同一个session会话共享一个bean; Global-session:所有会话共享一个bean实例; Bean的生命周期 总体流程: 实例化 ——> 初始化 ——> 使用 ——> 销毁; 细化流程: 实例化Bean:通过BeanDefi原创 2021-07-09 16:46:13 · 108 阅读 · 0 评论 -
Spring IOC及原理
1、IOC: 控制反转,借助第三方(IOC容器)来实现相互依赖的对象之间的解耦,使代码与架构的可维护性变强。 原理:反射编程,可以根据类名来动态的生成对象,但是反射的速度要比正常生成对象慢; 2、DI: 依赖注入,是实现IOC的一种方式; 3、例子: 人是一个对象,杯子也是一个对象,人去握杯子是一个行为,这个行为如果属于人的话,人在实现握这个动作时就需要去依赖杯子的抽象类,这显然不符合常识,难道杯子应该早于人来定义吗?所以杯子应该是被握住,应该将控制权反转,应该是杯子去实现一个HoldAble的原创 2021-07-09 16:45:37 · 133 阅读 · 0 评论