#Code

失效原因 经常会在初始化项目的时候配置一个HttpMessageConverter来配置Json序列化器,但是经常配置了过后就导致SB的static-locations配置失效,导致静态文件不显示...

在以前的Spring解决循环依赖的文章中,简单提了以下三级缓存以及为什么需要三级缓存。此处结合代码来说明一下。 什么是三级缓存 Spring三级缓存位于:DefaultSingletonBeanR...

在Java中我们常常会设计到多线程并发的问题,如有一个Money类,里面有一个方法为addMoney,当我们需要需要对这个分发并发的时候,就会出现线程安全问题。对此,我们的解决方案一般有两个,加锁...

寻找源码 首先我们从@Transactional注解出发。 查看引用,可以看到有个名叫SpringTransactionAnnotationParser的类比较可疑,根据名字理解,作用就是用...

以前一直听八股文说Spring的AOP是基于动态代理实现的。所以这里分析一下SpringAOP的源码。 注:本文基于SB 2.4.3版本进行分析,其他版本可能代码会有所出入。同时,由于JDK动态代理...

在Java中,我们经常会使用AOP来记录日志,这也是AOP一个比较经典的使用场景。但是问题是,如果我们需要支持动态的记录日志(比如SpEl)来记录日志,这样就需要对切面进行改造了。 在美团技术团队的...

在使用Graalvm打包一个项目,在运行的时候出现了如下的报错: Exception in thread "main" java.lang.ExceptionInInitial...

在Java中,我们常常使用-Xms、-Xmn、-Xmx来指定运行时的堆内存的占用。然而当我们通过top命令去查看当前程序内存占用情况的时候,经常会发现实际占用的内存远远的大于我们指定的内存。 ...

项目中经常使用的验证码。 通常我们校验验证码的时候会结合缓存(Redis或本地)来实现,为一个验证码唯一绑定一个UUID然后将验证码和UUID传送给前端,然后将UUID作为key,验证码的值作为va...

最近准备和朋友搞一个小项目,需要用到Jenkins来做部署,这里记录一个Jenkins的配置。Jenkins官方文档 由于方便起见,这里我使用War包下载。官网的war包下载比较慢,这里使用清华的源...