认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。它通过令牌(token)机制实现权限控制,广泛用于第三方登录、服务间资源共享等场景,支持授权码、简化、密码和客户端四种模式,兼顾安全性与灵活性。
ememberMe简介及用法
RememberMe功能并非简单保存用户名密码,而是通过服务端生成令牌(Token)并存储于Cookie中,实现关闭浏览器后仍保持登录状态。该机制避免频繁登录,提升用户体验,但需防范令牌泄露风险,可通过持久化Token至数据库及二次校验增强安全性。
Spring Boot中集成Lucence
本文介绍了Lucene全文检索原理及其在Spring Boot中的集成应用。首先解析了全文检索的核心思想——通过建立索引提升搜索效率,然后详细演示了Lucene的分词、索引构建与查询过程,并结合中文分词、高亮显示等实战功能,展示了其在实际项目中的灵活运用。
Spring Boot中使用监听器
本文系统介绍了Web监听器的概念及在Spring Boot中的应用,涵盖监听Servlet上下文、Session会话与Request请求的实战案例,并讲解自定义事件与监听器的实现方式,适用于数据缓存、在线人数统计、用户行为追踪等场景,具有较强的实用价值。
Spring Boot集成MyBatis
本文系统讲解Spring Boot集成MyBatis的两种方式:基于XML和注解。涵盖依赖配置、yml设置、驼峰命名映射,并详解@Select、@Insert等注解用法及@Param、@Results问题解决方案,结合实战示例,具有较强实用性,适用于日常开发参考。
Spring Boot中使用拦截器
本文详解Spring Boot拦截器的原理与使用,涵盖定义、配置、静态资源处理及登录校验、注解控制等实战场景,助你掌握AOP思想在请求拦截中的应用。
Spring Boot事务配置管理
本文介绍了Spring Boot中事务的使用及常见陷阱。通过@Transactional注解可轻松实现事务管理,确保数据操作的原子性。重点剖析了三大易踩坑点:异常类型不匹配导致未回滚、try-catch吞掉异常、事务与锁范围不一致引发并发问题,助你在实际项目中有效规避风险。
Spring Boot中的切面AOP处理
AOP(面向切面编程)旨在分离关注点,将核心业务与辅助逻辑解耦。通过Spring Boot中的@Aspect、@Pointcut、@Before、@After等注解,可实现日志记录、性能监控、事务管理等功能,提升代码模块化与可维护性,灵活应对业务变化。
SpringCloud工程部署启动
本文介绍SpringCloud微服务工程搭建全过程,涵盖项目创建、数据库配置、服务部署及远程调用实现。通过两种方案导入工程,完成user-service与order-service模块开发,并利用RestTemplate实现跨服务数据调用,帮助理解微服务间通信机制及拆分逻辑。
Ribbon负载均衡
本文深入讲解Spring Cloud中Ribbon实现客户端负载均衡的原理,涵盖负载均衡概念、分类、常见算法,详解@LoadBalanced注解的作用机制,演示如何自定义策略及配置饥饿加载,并对比不同技术实现方式,帮助读者全面理解微服务负载均衡核心知识。
Jmeter快速入门
本文介绍JMeter的安装与快速入门。需先安装JDK并配置环境变量,再下载解压JMeter,通过bin目录启动。首次运行可设中文界面,建议修改配置文件实现永久设置。随后演示创建线程组、添加HTTP取样器及监听器,完成简单性能测试流程。
Topic交换机(自行测试)
Topic交换机支持通配符匹配RoutingKey,实现灵活路由。BindingKey用`.`分隔,`*`匹配一个词,`#`匹配零个或多个词。相比Direct交换机,Topic更适用于复杂路由场景。
RabbitMQ入门
RabbitMQ是基于Erlang开发的开源消息中间件,支持AMQP协议,实现应用间解耦与异步通信。其核心组件包括生产者、消费者、队列、交换机和虚拟主机,可通过Docker快速部署并结合SpringAMQP实现消息收发。
认证源码分析与自定义后端认证逻辑
本文深入分析Spring Security认证流程,从UsernamePasswordAuthenticationFilter到AuthenticationManager、AbstractUserDetailsAuthenticationProvider,层层解析认证机制。重点讲解自定义UserDetailService实现、权限封装及Security配置,结合源码与实践,帮助开发者掌握自定义数据库认证逻辑的完整实现,并提供GitHub代码仓库供学习参考。
一场FullGC故障排查
本文记录了一次Java应用CPU使用率异常升至104%的问题排查过程。通过分析发现,问题根源为频繁Full GC,而Full GC由内存中多个大List对象(近900MB)导致,这些对象因处理Excel样本数据时结构设计不合理而长期驻留JVM堆内存,造成空间不足。借助JProfiler分析堆快照定位到大对象后,提出“治本”与“治标”两类解决方案:一是将大数据移出JVM内存存入Redis;二是优化数据结构、及时清理无用字段以减少内存占用。最终总结了线上高CPU问题的排查思路:优先检查JVM GC情况,结合工具分析堆内存,定位代码逻辑并验证推测,强调需区分机器监控与JVM监控差异,避免误判。
common-lang3
避免三目运算符引发的Java自动拆装箱异常,推荐使用ObjectUtils.defaultIfNull方法替代。该方式更安全,可有效防止null值导致的运行时错误,提升代码健壮性。
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于暂停线程执行,Sleep(1000)不保证精确唤醒时间,受系统调度影响;Sleep(0)则触发立即重新进行CPU竞争,让出执行机会,避免界面假死。
认识SpringSecurity
SpringSecurity 是功能强大的安全框架,核心包括认证、鉴权及防护机制。支持表单、OAuth2、SAML 等多种认证方式,基于过滤器链实现请求控制,通过 FilterChainProxy 与 DelegatingFilterProxy 集成,提供异常处理与 CSRF 防护,保障 Web 应用安全。
Eclipse运行SSM/SSH项目教程
本文介绍了如何在Eclipse中配置并运行Java Web项目,包括JDK、Tomcat等基础软件的安装与版本要求,详细演示了项目导入、Maven项目识别、工作空间设置等步骤,并重点讲解了Eclipse中绑定Tomcat服务器的全过程,涵盖版本选择、本地路径配置及项目部署。同时提供了常见错误解决方案,如数据库连接失败、密码错误等,并附有实际案例系统(如图书馆管理系统)的访问与配置说明,帮助开发者快速搭建和运行项目。
Ribbon负载均衡
本文深入讲解Spring Cloud中Ribbon实现客户端负载均衡的原理,涵盖@LoadBalanced注解作用、负载均衡分类与算法、Ribbon自定义策略配置及饥饿加载优化,并对比服务端负载均衡方案,帮助读者全面理解微服务架构中的流量分发机制。
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端在NAS场景下因缓存版本号回退,导致读取旧数据并写坏文件系统。通过日志分析与复现实验,发现buffer write先读pagecache、慢请求致dv回退是根因,修复后验证问题解决。
[Blog]三层架构:代码本地运行(☆)
本任务要求掌握SpringBoot、MySQL、Maven等技术,用时约2小时。需将项目本地运行,解决JDK、Maven、Idea版本等问题,并修复因数据库未导入、名称不一致导致的BUG,最终访问localhost:8080完成博客系统调试与问题排查。
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于暂停线程执行,Sleep(1000)不保证精确唤醒时间,因CPU调度受优先级和竞争影响;Sleep(0)则触发立即重新调度,让出CPU给其他线程,避免界面假死。二者作用显著不同。
Jmeter快速入门
JMeter是基于JDK的性能测试工具,需先安装并配置JDK。从官网下载zip包解压后,通过bin目录下的脚本启动(如jmeter.sh),启动较慢且依赖黑窗口运行。可设置中文语言,修改jmeter.properties文件实现永久生效。基本使用包括创建线程组、添加HTTP取样器及各类监听器,用于发送请求并查看结果树与汇总报告,快速完成接口性能测试。
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,替换为原始类型(如Object或限定类型)。例如,List<String>和List<Integer>在运行时均为List。类型检查在编译期完成,基于引用而非实际对象。擦除导致反射可绕过泛型限制、无法使用基本类型、instanceof失效等问题,并影响多态实现,需通过桥方法等机制解决。静态成员不能使用类的泛型参数,因其实例化依赖对象创建,而静态上下文无此支持。
云效DevOps
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。