分布式锁实现----Redis 实现原理:setnx 实现逻辑: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556public class GrabRedisLockServiceImpl implements GrabService { @Autowired S 2021-11-26 分布式锁 #分布式锁
分布式锁实现----Mysql 使用场景:项目并发很低的时候可以用 Mysql锁的实现: 通过ThreadLocal进行参数传递 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647@Service@Datapublic class MysqlLock implements Lock { @Autowi 2021-11-25 分布式锁 #分布式锁
Spring源码图解 Spring 源码图解 图片可能有点大,保存到本地,便于查看 要processon源文件,邮件wfp_chase@163.com 2021-11-20 Spring #Spring
Spring循环依赖 在Spring中,对象的创建 分为两个部分,一个是实例化,另一个是初始化,两个对象A、B互相引用,在对象初始化过程中会有如下的步骤: 1234567public class A { private B b;}public class B { private A a;} 上图中,会形成一个闭环,怎么解决这个问题呢? 如果想解决这个问题,那么久必须 2021-11-07 Spring #Spring
Spring中Bean的创建过程二 populateBean 设置属性方法1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889// 填充属性prot 2021-10-30 Spring #Spring
Spring中Bean的创建过程一 Bean在完成创建的时候会经过getBean——→ doGetBean ——→ createBean ——→ doCreateBean这一系列方法调用链来完成。 入口方法preInstantiateSingletons:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495 2021-10-22 Spring #Spring
Spring启动流程二 registerBeanPostProcessors:注册bean处理器,这里只是注册功能,真正调用的是getBean 123protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.regist 2021-10-14 Spring #Spring
Spring启动流程一 入口:ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(“”); 123456789public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, @Nullable Appli 2021-10-09 Spring #Spring
Object的内存布 使用JavaAgent测试Object的大小 对象大小(64位机)观察虚拟机配置java -XX:+PrintCommandLineFlags -version 对象的内存布局分为两种 普通对象和数组对象普通对象 对象头:markword 8 hospot 中叫 markword 占8个字节 ClassPointer指针:-XX:+UseCompressedClassPointers 2021-09-09 Java基础 #Object
GC日志格式和参数汇总 CMS日志分析执行命令:java -Xms20M -Xmx20M -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC com.mashibing.jvm.gc.T15_FullGC_Problem01 UseConcMarkSweepGC :这个参数就可以指定CMS Old区 12345678年轻代:[GC (Allocation Failure) [ParN 2021-09-01 Java基础 #GC