![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
spring相关知识
古笑来
愿今日之所作,可为君行一时方便!
展开
-
负载均算法
原创 2021-10-24 14:45:48 · 34 阅读 · 0 评论 -
CAP、BASE理论
base理论是cap理论的一种软化原创 2021-10-23 15:19:33 · 74 阅读 · 0 评论 -
spring-bean的作用域
request scope: 每次给前端的都是被cglib代理的对象,每次都是相同的,但是被cglib代理的对象(scopedTarget.user)是不同的。session scope:每次给前端的都是被cglib代理的对象,每次都是相同的,但是被cglib代理的对象(scopedTarget.user), 每一个session对应一个,spring通过cook来校验session。application scope:作用域整个 sevletContext...原创 2021-10-23 15:16:11 · 85 阅读 · 0 评论 -
spring解决循环依赖
spring怎么解决的循环依赖问题?三级缓存一级缓存:/** 保存所有的singletonBean的实例 */private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(64);二级缓存:/** 保存所有早期创建的Bean对象,这个Bean还没有完成依赖注入 */private final Map<String, Object> ea原创 2021-10-23 15:14:36 · 59 阅读 · 0 评论 -
分布式事务
https://blog.csdn.net/qq_31854907/article/details/92796788两个服务也存在分布式事务,a做了,b没做分布事务,用的地方很少,也尽量避免没必要的分布式事务什么事分布式事务:多个不同请求,并发访问不同服务,一个以及多个请求失败,则回滚。分布式事务应理论基础: CAP BASE 理论。 CAP、BASE理论.note两阶提交(2PC)两段提交就是分两个阶段提交第一阶段询问各个事务数据源是否准备好如果各个事务源都同意则进行第二次提交,否则发消息原创 2021-10-23 15:12:11 · 59 阅读 · 0 评论 -
分布式相关问题
最大五亿id的存储,定时任务的分发(每隔多少天一次)根据日期存表(id,电话,过期时间),如果一天来了五亿,那么分表,分表的信息放到一个原信息表中,到期全天不定时发送任务,分散cpu占用率。当某一时刻数据大量涌入 底层是mysql。单机mysql每秒2k正常运行,5k几乎要死了。偶尔数据量会飙升,怎么解决?如果实时性要求比较高的话,分布式,多实例,增加系统的计算能力。如果实时性要求比较高的话,但资源实在有限,可以 限流 降级 熔断实时性不高的话,可以用消息中间件进行消峰feign原理net原创 2021-10-22 10:11:28 · 55 阅读 · 0 评论 -
bean的生命周期
beanDifinition注册beanDifination合并bean实例化前InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiationbean实例化无法控制。cglib 类加载器等进行实例化bean实例化后InstantiationAwareBeanPostProcessor#postProcessAfterInstantiation可得到这个bean,并做你想干的事。返回false不进行下面的属性赋值;返回tru原创 2021-10-22 10:10:49 · 35 阅读 · 0 评论 -
ioc、aop
ioc (Inversion of Control)控制翻转,还有另一个名字,依赖注入(Dependency Injection)在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是我们自己,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被原创 2021-10-22 10:04:16 · 150 阅读 · 0 评论 -
spring中的动态代理
动态代理 jdk动态代理 cglib动态代理JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理;其核心的两个类是InvocationHandler和Proxy,通过反射机制来实例化代理对象,并代理的调用委托类方法。CGLIB代理:实现原理类似于JDK动态代理,只是它在运行期间生成的代理对象是针对目标类扩展的子类。CGLIB是高效的代码生成包,底层是依靠ASM(开源的java字节码编辑类库)操作字节码实现的,性能比JDK强;需要引入包asm.ja原创 2021-10-22 09:25:17 · 411 阅读 · 0 评论