Spring解决循环依赖 Spring通过三级缓存来解决循环依赖,一级缓存为单例池(singletonObjects),二级缓存为早期曝光对象(earlySingletonO...
Spring解决循环依赖 Spring通过三级缓存来解决循环依赖,一级缓存为单例池(singletonObjects),二级缓存为早期曝光对象(earlySingletonO...
Spring初始化Bean的几种方式 执行顺序:Constructor > @PostConstruct > InitializingBean > init-method 源...
Java中的常量池分为三类:字符串常量池、class常量池、运行时常量池 字符串常量池 从1.7及其之后,字符串常量池从方法区移到了堆中 字符串池的实现——StringTab...
记录一次学习总结——数据存储的发展历程 文件存储 早期一般都是文件存储,存在磁盘上,磁盘的读写是线性的、速度在毫秒级别,所以随着数据量的增大,会越来越慢,它的瓶颈在于磁盘。文...
相关知识 Linux中一切类型都被抽象成文件,故Linux都是文件描述符 内存被划分为:内核态和用户态,数据在内核态和用户态之间拷贝,内核态可以访问用户态数据,反之不可以 只...
Redis Threaded IO Redis 6.0开始支持多线程,Redis分主线程和IO线程,IO线程只用于读取客户端命令和发送回复数据给客户端,客户端命令依旧是由主线...
一次使用的时候发现,这两个注解都能用于接收参数,那么它俩的区别是啥呢? @RequestParam 用来处理 Content-Type 为 application/x-www...
早上随便翻到单例的写法,那我也随手写几个吧 除了以下几种,需要知道枚举也是属于一种实现方式,并且它可以防止序列化/反序列化、反射
背景 原有springboot项目包含多个模块,随着团队越来越大,大家每次修改合并到master时,总会牵扯到别的项目代码,偶尔度越来越高 项目拆分方案 评价服务(第一阶段)...
Explain包含字段信息 Explain包含字段信息如下:分别是 id、select_type、table、partitions、type、possible_keys、ke...
java是一个半解释半编译型语言,早期java是通过解释器来执行,效率低下;后期进行优化,解释器在原本的c++字节码解释器基础上,扩充了模板解释器,效率有了明显提升;后来又加...
在上一篇InnoDB索引里我们了解了B+树的结构,那么联合索引B+树长什么样呢? 假设我们现在有a,b的联合索引,它的B+树长这样: 从上图可以看出a是有序的1,1,2,2,...
构造方法注入:通过将@Autowired注解放在构造器上来完成构造器注入,默认构造器参数通过类型自动装配 set方法注入:通过将@Autowired注解放在方法上来完成方法参...
基于java配置方式 基于注解方式 基于xml方式
RabbitMQ结构 左侧 P 代表 生产者,也就是往 RabbitMQ 发消息的程序。 中间即是 RabbitMQ,其中包括了 交换机 和 队列。 右侧 C 代表 消费者,...
AOP简介 AOP将业务模块与周边功能或者说为业务模块服务的功能区分开,例如:权限控制、日志统计。AOP将这些共性的模块封装起来,减少了代码重复,降低了模块间的耦合度,更利于...