logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Spring源码解析 - SpringApplication run流程-refreshContext(context)源码分析

开发者可以自定义关闭钩子,通过实现 ApplicationListener 接口并监听 ContextClosedEvent 事件来实现。@Component@Override// 在这里执行自定义的关闭逻辑// 例如,关闭数据库连接池// }@Override// Add to end of list,添加处理器//前置@Override。

#spring#java
java字节码增强,安全问题?

公共字段 (:就像把你家的保险箱放在大街上。任何人都可以过来尝试打开它。私有字段 + 业务代码反射 (:就像你把保险箱藏在家里,但你自己偷偷配了一把万能钥匙。只有你和你授权的朋友(同一安全上下文)可以用这把钥匙打开它。私有字段 + 高权限Agent (:就像一个超级锁匠。他不需要你的钥匙,可以直接改变保险箱的锁芯结构,把它变成公用的,让所有人都能打开。公共字段非常危险,应避免使用。业务代码中的反射

#java#安全#开发语言
Java Agent 原理深度解析:premain、agentmain 与字节码插桩

地址绑定:Java字节码存储符号引用,JVM运行时绑定地址;C++ so编译时确定大部分布局,dlopen是运行时查找。ByteBuddy的能力:它是一个完整的字节码生成工具包。运行时生成新类和通过Agent修改已存在的类是它的两大应用范式,后者只是前者一个非常重要的特例。Transform的角色和transform方法为ByteBuddy提供了一个标准化的、被JVM认可的“手术室”,让它能在类加

#java#开发语言
java agent 字节码增强demo实现,无修改增强服务

通过Java Agent机制在应用启动时加载使用字节码增强技术修改类的字节码在方法执行前后插入监控代码收集并输出监控数据SkyWalking等APM工具的核心原理与此类似,但实现了更复杂的功能和更完善的生态系统。理解这个基本原理有助于更好地使用和调试分布式追踪系统。// 待补充真实增强案例。

#java#python#开发语言
docker 部署Skywalking

jar包地址(官网):https://skywalking.apache.org/downloads/阿里云:https://mirrors.aliyun.com/apache/skywalking/从 SkyWalking 官方网站下载对应版本的 Agent。参数指定 SkyWalking Agent 的路径。,您应该能够看到 SkyWalking 的界面。在启动 Spring Boot 应用时

#docker#skywalking#容器
如何设计一个二级缓存(Redis+Caffeine)架构?Redis 6.0多线程模型如何工作?

通过设置**TTL(生存时间)**作为最终一致性的保障,适用于对一致性要求稍低但性能敏感的场景(如商品详情)。针对高并发场景下“删除缓存→更新数据库→新请求读缓存”的时间窗口问题,采用。确保一致性,适用于对一致性要求高的场景(如订单状态变更)。,但命令执行仍保持单线程(保证原子性)。返回数据并更新Redis和本地缓存。查本地缓存Caffeine。返回数据并更新本地缓存。Redis 6.0引入。

文章图片
#redis#架构#wpf
责任链模式详解

责任链模式(Chain of Responsibility) 是一种行为设计模式,允许将请求沿着处理链传递,直到某个处理对象决定处理该请求。核心思想是 解耦请求发送者与接收者,每个处理者持有对下一个处理者的引用,形成处理链。责任链模式是一种行为设计模式,它允许你将请求沿着处理者链进行传递,每个处理者都有机会对请求进行处理。

文章图片
#责任链模式
到底了