手写Spring之前先学思想,深入了解Spring源码和了解Spring详细的流程才能写一个Spring框架出来另外图里有Spring循环依赖问题解决的流程依赖注入的基本概念:Spring 设计的核心 org.springframework.beans包(架构核心是org.springframework.core包),它的设计目标是与JavaBean组件一起 ......
271
0
0
2022-12-22
SpringBoot高级1.热部署为了提高我们的开发效率,我们可以放开IDEA中的SpringBoot项目的热部署操作1.1 放开配置在IDEA中默认是没有放开热部署操作的,我们需要手动的放开设置1.2 注册Control+shift+Alt+/ 会出现一个弹出界面然后选择Registry1.3 添加devtools<!--devtools 热部署的支 ......
427
0
0
2022-12-20
综合案例前面介绍了Freemaker,这节介绍SpringBoot整合MyBatis,同时结合Freemaker展现数据5.1 项目创建添加相关的依赖<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ......
408
0
0
2022-12-20
本篇内容包括:7 种 Jvm 垃圾回收器的介绍、对比 以及 对应的 Jvm 参数设置,这 7 种包括了:Serial、ParNew 以及 Parallel Scavenge 三种新生代回收器 和 :Serial Old、Parallel Old 以及 CMS 三种老年代回收器,此外还有一个 G1 回收器是 Java 目前比较前沿的成果…一、Jvm 垃圾回收器 ......
305
0
0
2022-12-20
《如何优雅地记录操作日志》是美团技术团队2021年最受欢迎的一篇技术文章,文章很有深度,强烈建议大家去品读一番。操作日志指的是某一时间下谁对什么做了什么事情,操作日志一般限定于创建、更新和删除操作,而查询并不是什么敏感操作,所以无需记录操作日志。比如:管理员于2020-10-10 11:12:13新增一个用户,用户名为crimson_typhoon;买家青鸟 ......
545
0
0
2022-12-20
Running with Spring Boot v2.5.4, Java 11.0.12当前,Spring统一异常处理机制是Java开发人员普遍使用的一种技术,在业务校验失败的时候,直接抛出业务异常即可,这明显简化了业务异常的治理流程与复杂度。值得一提的是,统一异常处理机制并不是Spring Boot提供的,而是Spring MVC,前者只是为Spring ......
323
0
0
2022-12-20
本篇内容包括:原子类概述、原子类分类(Atomic 基本类型原子类、Array 数组类型原子类、Atomic\Reference 引用类型原子类、Atomic\FieldUpdater 原子更新属性、Adder 加法器、Accumulator 积累器)、原子类 Demo 等内容!一、原子类概述我们把一个或者多个操作在 CPU 执行的过程中不能被中断的特性称之 ......
363
0
0
2022-12-20
本篇内容包括:Java 并发工具类的介绍、使用方式与 Demo,包括了 CountDownLatch(线程计数器)、CyclicBarrier(回环栅栏)、Semaphore(信号量) 以及 Exchanger(交换器)等内容!一、CountDownLatch(线程计数器)CountDownLatch 线程计数器,俗称闭锁,作用是类似加强版的 Join,是让 ......
335
0
0
2022-12-20
本篇内容包括:抽象队列同步器(抽象队列同步器、同步状态的处理)以及FIFO队列的设计——AQS灵魂(Node 节点的设计、共享资源的竞争、共享资源的释放)等内容。一、抽象队列同步器1、抽象队列同步器AQS,即 AbstractQueuedSynchronizer,抽象队列同步器,它是是一个集同步状态管理、线程阻塞、线程释放及队列管理功能与一身的同步框架。其核 ......
337
0
0
2022-12-20
本篇内容包括:为什么使用 Lock、Lock 锁注意事项、ReentrantLock 和 synchronized 对比、ReentrantLock (加锁、解锁、公平锁与非公平锁、ReentrantLock 如何实现可重入)等内容。一、Lock 锁1、为什么使用 Locksynchronized 线程等待时间过长,获取锁的线程由于要等待IO或者其他原因(比 ......
314
0
0
2022-12-20
本篇内容包括:Synchronized 关键字简介、synchronized 的修饰对象、对象的内存布局(64位)、Synchronized 锁升级过程等内容。一、Synchronized 关键字简介Synchronize 翻译成中文:同步,使同步。synchronized:已同步。synchronized 能够保证同一时刻最多只有一个线程执行该段代码,以达 ......
323
0
0
2022-12-20
The built-in service discovery mechanism in JavaRunning with Java 11.0.10SPI (Service Provider Interface) 是自 Java 1.6 引入的一种基于接口或抽象类的服务发现机制。得益于 Java SPI 机制,开发人员只需为第三方预留出 SPI 拓展接口,这样 ......
308
0
0
2022-12-20
初探Spring RetryRunning with Spring Boot v2.4.5, Spring Retry v1.3.1在与外部系统交互时,由网络抖动亦或是外部系统自身的短暂性问题触发的瞬时性故障是一个绕不过的坑,而重试可能是一个比较有效的避坑方案;但有一点需要特别注意:外部系统的接口是否满足幂等性,比如:尽管调用外部系统的下单接口超时了,但外部 ......
455
0
0
2022-12-20
本篇内容包括:volatile 关键字简介、volatile 保证可见性(包括:关乎不可见性问题描述、JMM内存模型和不可见性的解决方案)以及 volatile 其他特性(包括:volatile 不保证原子性、volatile 原子性的保证操作、volatile 禁止指令重排、内存屏障和 happens-before 规则)一、volatile 关键字简介J ......
326
0
0
2022-12-20
本篇内容包括:ThreadLocal 简介、ThreadLocal 的使用(创建、方法、Demo)、ThreadLocal 原理、ThreadLocal 内存泄漏问题&使用时的注意事项以及其他 Thread 相关知识点(关于 ThreadLocal和Synchronized的区别、关于 ThreadLocalMap 中的 Hash 冲突处理)等内容。 ......
306
0
0
2022-12-20