Spring 获取代理对象的目标对象

参考文档:Spring 获取代理对象中被代理的目标对象 1. 代理对象 为什么对象会被代理? 被 AOP 加入了切面的对象。 使用了 @Transactional 的对象。 等等。 2. 为什么要获取被代理的目标对象 编写单元测试

测试 

SpringBoot 生命周期

参考文档:不懂 SpringApplication 生命周期事件?那就等于不会 Spring Boot 嘛 SpringBoot 生命周期事件

bean 初始化方法

参考文档: 七种方式教你在SpringBoot初始化时搞点事情 1. 容器刷新完成时 容器刷新完成:容器刷新成功说明所有 bean 初始化已经完成 1.1 ContextRefreshedEvent 容器刷新完成后会调用容器内所有实现了ApplicationListener<ContextRefre

Spring 

@Async 报错

参考文档: 51CTO 博客 1. 问题描述 问题:@Async 会导致循坏依赖报错 我们看段代码: @Service public class HelloServiceImpl implements HelloService { @Autowired private HelloSe

Spring 

GC 日志分析

参考: jvm:GC日志解析:G1日志解析 JVM调优参数大全、参数设置案例、日志分析 1. G1 1.1 gc 日志头 OpenJDK 64-Bit Server VM (25.272-b10) for linux-amd64 JRE (1.8.0_272-b10), built on Oct 1

JVM 

垃圾收集器(gc)

参考文档: java常用垃圾回收器G1和CMS的区别 jvm 针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6 中 Sun HotSpot 虚拟机的垃圾收集器如下: 1. Client 模式和 Server 模式 参考:JVM的Client模式与Server模式 JVM 有两种运行模式

JVM 

jvm 参数

参考: JVM调优参数大全及G1GC调优 java g1垃圾收集器优化参考 1. 概述 JVM 启动参数分为三类 类别 说明 标准参数(-) 所有的 JVM 实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X) 这些参数不是虚拟机规范规定的。因此,不是所有VM的实现(如:HotSpot,

JVM 

jvm 工具

1. jps 作用:查询 java 进程 jps [-q] [-mlvV] [<hostid>] 15653 Launcher 15574 15654 Application 536 15805 Jps q: 只输出进程号 m: 输出main method的参数 l: 输出完全的包名,应用主类名

JVM 

redis 实现分布式锁

参考文档: Redis实现分布式锁 在单体应用中,如果我们对共享数据不进行加锁操作,会出现数据一致性问题,我们的解决办法通常是加锁。 在分布式架构中,我们同样会遇到数据共享操作问题,本文章使用 Redis 来解决分布式架构中的数据一致性问题。 1. 单机数据一致性 单机数据一致性架构如下图所示:多个

JAVA 四种引用类型

1. 强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。 2. 软引

基础