1. 动态数据源的使用示例 2. 数据源配置类 3. 自定义数据源类 4. 数据源切面
1. 动态数据源的使用示例 2. 数据源配置类 3. 自定义数据源类 4. 数据源切面
1. 登录日志 1.1 登录成功、失败的日志示例 1.2 AsyncFactory.recordLogininfor 1.3 AsyncManager.me 1.4 Asyn...
(1)分页的入口是startPage() (2)PageUtils.startPage (3)TableSupport.getPageDomain
(1)SysLoginController.getRouters (2)SysMenuServiceImpl.selectMenuTreeByUserId (3)SysMen...
1. JWT、Spring Security 若依(分离版)的登录、认证、授权使用到了JWT、Spring Security,下面先通过例子对JWT、Spring S...
1. vue请求url说明 验证码的请求url: 可以看到url中有个/dev-api,端口号是80,但后端url中没有/dev-api,并且端口号是8080,这是因为在vu...
可以调,不过由于是在未持有锁时调用的,所以会抛异常
Condition的await、signal源码分析本文从源码角度,以AbstractQueuedSynchronizer.ConditionObject的await、signal、signalAll为入口,对基于Reentr...
引言 本篇文章结合我个人对Java内存模型的理解以及相关书籍资料为前提全面剖析JMM内存模型,本文的书写思路先阐述JVM内存模型、硬件与OS(操作系统)内存区域架构、Java...
linux用户态和内核态的转换 当一个进程执行系统调用而执行内核代码时,称进程处于内核 内核态,此时处理器处于特权级最高的(0级)内核代码中执行,当进程处于内核态时,执行的内...
引言 关于源码分析如果不是功底特别深厚的小伙伴可能需要用心的去细心咀嚼,千万不要抱着看一边就能懂的心态学习,不然最终也没有任何作用。如果只是想要研究Synchronized关...
Java提供的线程池(即ThreadPoolExecutor类)实现了线程的创建和管理、任务的调度与执行,因为减少了线程的创建、销毁等过程,所以当执行大量异步任务时,线程池可...
LinkedBlockingQueue是用链表实现的FIFO队列,该队列大小默认是Integer.MAX_VALUE,可以认为是无界的,也可指定大小,使其有界。基于链表的队列...
ArrayBlockingQueue底层是用数组实现的有界(即大小固定)的FIFO队列,其中利用两个字段,将该数组构造成了环形数组。ArrayBlockingQueue体现了...
本文从源码角度,以AbstractQueuedSynchronizer.ConditionObject的await、signal、signalAll为入口,对基于Reentr...
本文从源码角度,以ReentrantLock的lock、lockInterruptibly、unlock为入口,对ReentrantLock中公平锁与非公平锁的上锁、解锁、处...
1. 线程状态及转换 1.1 六种线程状态 Java的Thread.State内部类中定义了6种线程状态,一个线程在任意时刻只能对应一种状态,可以通过特定方法进行状态切换。下...