微众银行一面凉经

本文介绍了Spring框架如何通过JDK和CGLIB实现AOP动态代理,探讨了服务熔断处理以及在导入大量数据时如何利用线程池提高效率。同时,解读了策略模式的应用和乐观锁的原理,包括乐观锁的实现机制如AtomicStampedReference。
摘要由CSDN通过智能技术生成

spring如何实现aop???

spring基于JDK的proxy动态代理或者cglib实现aop
动态代理:运行时生成代理类,基于反射,定义目标类和实现的接口,定义handler实现invocationhandler接口,然后将接口的类加载器和接口类数组、handler作为proxy的参数返回一个代理对象。
静态代理:编译时生成代理类,需要编写代理类,代理类和目标类都实现了共同的接口和方法,代理类持有目标类的引用。
cglib:CGLIB通过动态生成目标类的子类来实现代理。这个子类会重写目标类中所有不是final的方法,并在这些方法中拦截父类方法的调用。这样做可以在不修改目标类代码的情况下,对方法执行增强操作。

远程调用过程出现服务无法影响,怎么处理???

进行服务熔断处理,采用后备方案

合同导入10w条数据,怎么实现1-2秒完成???

采用线程池:确定每个线程插入的数据量,比如1000,然后计算线程数量,总共为10个线程,所以配置为coresize:5,maxsize:10,线程存活时间为1秒,阻塞队列为100,拒绝策略采用callerruns。然后自定义Runnerable接口实现类,每次从列表数据中获取当前线程要处理的列表(开始位置-结束位置的列表),然后批量插入,最后countdownlatch-1。

策略模式是什么???

是一种行为型的设计模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。大多用于if-else过多的情况
主要角色有:context、strategy、concreteStrategy
context类有包含strategy的map,实现ApplicationListener的onApplicationEvent方法,通过自定义的ioc获取到strategy类型的实现类,并将各种实现类存到map里面,每次执行的时候,根据策略标志拿到对应的策略实现类并执行。
strategy接口含有策略标志、任务执行方法。
concreteStrategy实现类返回具体的标志和处理具体的执行任务。

乐观锁???

乐观锁一般是默认不发生资源竞争的一种锁,通过版本号 或者
CAS实现:变量,预期值,更新值 当预期值和内存中的数据一致才更改为更新值
但是会造成ABA问题,因为途中修改变量再改回去这种事情是不允许发生的,可以通过AtomicStampedReference来实现,添加时间戳和版本标志

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值