Spring中声明式注解失效原因 @Transactional 介绍@Transactional 可以作用在接口、类、类方法。 作用于类:当把@Transactional 注解放在类上时,表示所有该类的 public 方法 都配置相同的事务属性信息。 作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会 覆盖 类的事务配置信息。 作用于接口:不推荐这种使用方法,因为一旦标 2025-02-06 开发 #开发
Filter与Interceptor 过滤器 Filter过滤器是JavaWeb的三大核心组件之一,它是用来拦截请求的,拦截到请求之后执行相应的逻辑决定是否放行该请求,从而实现一些特殊功能。 注意: 过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等。 2025-02-06 开发 #开发
AOP原理及应用 什么是 AOP?Spring AOP(Aspect-Oriented Programming)是Spring框架提供的一种面向切面编程的技术。它通过将横切关注点(例如日志记录、事务管理、安全性检查等)从主业务逻辑代码中分离出来,以模块化的方式实现对这些关注点的管理和重用。 在Spring AOP中,切面(Aspect)是一个模块化的关注点,它可以跨越多个对象,例如日志记录、事务管理等。切面通过定义 2025-02-05 Java > 开发 #Java #开发
类加载机制 类加载过程类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。 加载类加载过程的第一步,主要完成下面 3 件事情: 通过全类名获取定义此类的二进制字节流。 将字节流所代表的静态存储结构转换为方法区的运行时数据结构。 在内存中生成一个代表该类的 Class 对象,作为方法区这些数据的访问入口。 验证验证是连接阶段的第一步,这一阶段的目的是 2025-02-05 Java > JVM #Java #JVM
JVM调优 性能监测的命令行工具操作系统层面:top、vmstat、iostat、netstat 等命令,可以监控系统整体的资源使用情况,比如说内存、CPU、IO 使用情况、网络使用情况。 JDK 自带的命令行工具层面,jps、jstat、jinfo、jmap、jhat、jstack、jcmd 等,可以查看 JVM 运行时信息、内存使用情况、堆栈信息等。 jmap 使用使用 jmap -heap <pi 2025-02-05 Java > JVM #Java #JVM
GC机制与常见垃圾回收器 堆空间的基本结构Java 堆是垃圾收集器管理的主要区域,因此也被称作 GC 堆(Garbage Collected Heap)。从垃圾回收的角度来说,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆被划分为了几个不同的区域,这样我们就可以根据各个区域的特点选择合适的垃圾收集算法。 在 JDK 7 版本及 JDK 7 版本之前,堆内存被通常分为下面三部分: 新生代内存(Young Ge 2025-02-05 Java > JVM #Java #JVM
对象内存问题 对象的内存布局对象的内存布局是由 Java 虚拟机规范定义的,但具体的实现细节各有不同,如 HotSpot 和 OpenJ9 就不一样。 就拿我们常用的 HotSpot 来说吧。对象在内存中包括三部分:对象头、实例数据和对齐填充。 对象头对象头是对象存储在内存中的元信息,包含了Mark Word、类型指针等信息。Mark Word 存储了对象的运行时状态信息,包括锁、哈希值、GC 标记等。在 64 2025-02-05 Java > JVM #Java #JVM
JVM内存结构 JVM 的结构体系JVM 可以大致划分为 类加载器、运行时数据区、执行引擎 类加载器负责负责从文件系统、网络或其他来源加载 Class 文件,将Class 文件中的二进制数据读入到内存当中。 运行时数据区,JVM 在执行 Java 程序时,需要在内存中分配空间来处理各种数据,这些内存区域按照 Java 虚拟机规范可以划分为方法区、堆、虚拟机栈、程序计数器和本地方法栈。 执行引擎负责执行字节码 2025-02-05 Java > JVM #Java #JVM
Logstash安装与使用 什么是 Logstash?Logstash 是一种开源的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您喜欢的 “存储库” ,如 Elasticsearch 中 下载与安装 Logstash访问 Logstash 官网历史版本下载链接:https://www.elastic.co/downloads/past-releases 选择 Logstash; 选择适当版本( 2025-02-02 开发 #开发