摘要:
前言 有这么一个业务场景:部门A服务要使用部门B服务的业务数据,部门A服务使用部门B服务的业务数据前置条件是B部门必须要给A授权。B部门的授权和业务数据分属为不同服务。其请求流程如下 因为A的鉴权信息的请求值是固定的,因此鉴权结果大概率也是固定值。当时B部门的业务服务开发同事,为了提高效率。就加了缓 阅读全文
摘要:
前言 本文的素材来自读者的一个问题,他看过我之前写的一篇博文聊聊如何把第三方服务注册到我们项目的spring容器中。刚好他项目中也有类似这样的一个需求,他就采用我文中介绍的第三种方法 调用beanFactory.registerSingleton() 一开始项目运行得还可以,后面他在这个第三方服务中 阅读全文
摘要:
前言 在我们开发过程中,会经常碰到这么一些需求,比如在在主流程执行前,要做一些前置事件,在主流程执行之后,做一些收尾工作。对一些新手程序员,他可能会直接写类似如下的代码 public void execute(){ doBefore(); doBiz(); doAfter(); } 对有一定工作经验 阅读全文
摘要:
前言 最近朋友和我提了一个挺有趣的问题:他们有个项目用了他们框架部提供的jwt token校验填充组件,实现原理大概是,通过springboot拦截器来校验token,如果token合法,就解析token,将token携带的业务信息map填充到threadlocal里面,方便后续业务使用。 朋友的问 阅读全文
摘要:
前言 spring事务失效场景可能大家在很多文章都看过了,所以今天就水一篇,看大家能不能收获一些不一样的东西。直接进入主题 spring事务失效场景以及原因 1、场景一:service没有托管给spring public class TranInvalidCaseWithoutInjectSprin 阅读全文
摘要:
前言 落地过微服务项目的朋友,对配置中心应该都不会陌生。利用配置中心可以集中化管理配置,还可以做到配置热更新等。目前市面常见的配置中心有QConf、spring-cloud-config、diamond、disconf、apollo、nacos等。而微服务项目最常用应该是spring-cloud-c 阅读全文
摘要:
前言 之前我们在聊聊如何进行代码混淆这篇文章提到,在springboot项目使用allatori,有一个小坑。这个坑就是当你在allatori.xml配置 <input> <jar in="${project.build.finalName}.jar" out="${project.build.fi 阅读全文
摘要:
前言 什么是代码混淆 代码混淆,是指将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。 代码混淆常见手段 1、名称混淆 将有意义的类,字段、方法名称更改为无意义的字符串。生成的新名称越短,字节代码越小。在名称混淆的字节代码中,包,类,字段和方法名称已重命名,并且永远不能恢复原 阅读全文
摘要:
前言 之前我们业务团队在处理全局异常时,在每个业务微服务中都加入了@RestControllerAdvice+@ExceptionHandler来进行全局异常捕获。某次领导在走查代码的时候,就提出了一个问题,为什么要每个微服务项目都要自己在写一套全局异常代码,为什么不把全局异常块抽成一个公共的jar 阅读全文
摘要:
前言 之前写过一篇文章聊聊因不恰当使用alibaba sentinel而踩到的坑。其实这里面有些坑是因为在sentinel在mvc项目统计时,是基于mvc的拦截器来实现。这种方式会导致比如热点参数规则,比较难获取到参数,因此要在项目中额外配置@SentinelResource注解才会生效。今天我们就 阅读全文