持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强框架,简化单表CRUD操作,内置代码生成、分页插件、条件构造器等功能,支持自定义SQL与逻辑删除,提升开发效率,广泛应用于企业级Java项目中。
数据库
本内容系统讲解MySQL核心知识,涵盖char与varchar区别、事务ACID特性及隔离级别、索引结构(B+树)、聚簇与二级索引、回表查询、索引创建与失效场景,并结合explain执行计划、慢SQL定位及SQL优化实践,全面解析数据库性能调优关键点。
了解SQL注入
SQL注入是利用Web应用输入验证缺陷,将恶意SQL代码插入数据库查询,从而绕过认证、窃取数据甚至执行系统命令的攻击方式。常见于用户输入未严格过滤的场景,如登录框。攻击者可通过构造特殊语句篡改SQL逻辑,实现权限提升、信息泄露等操作。OWASP将其列为头号Web安全威胁。防御需结合参数化查询、输入验证与错误信息管控。
并发修改同一记录时需要加锁
推荐根据冲突概率选择锁策略:冲突小于20%时使用乐观锁,以version控制更新,重试不少于3次;否则采用悲观锁,可在应用层、缓存或数据库层加锁,确保数据一致性。
微信通知
基于企业微信与小程序集成,通过API获取access_token并发送消息。需配置企业微信appId、secret及绑定小程序。示例使用Java异步调用HTTPS接口,构建消息内容并推送至指定用户,适用于订单提醒等场景,支持自定义字段与重复发送检查。
📚 RAG技术
RAG架构结合检索与生成,通过DPR、ColBERT等检索器从向量数据库中召回相关内容,再由大模型生成答案。支持密集、混合检索与多路召回,提升准确率。常用FAISS、Pinecone等向量库,广泛应用于减少幻觉、增强问答可靠性。
整合切面,参数拦截+过滤
基于Spring AOP实现切面整合,通过@Pointcut、@Before、@Around和@After注解对Controller层方法进行参数拦截与日志记录。可获取请求来源、URL、方式、参数及执行耗时,便于调试与监控,支持后续扩展至数据库存储或ELK日志分析,提升系统可观测性。
Redis:内存陡增100%深度复盘
一次Redis崩溃事故复盘:大KEY导致带宽占满,触发缓冲区激增,内存被输出/输入缓冲区耗尽,淘汰策略失效,最终引发GET/SET超时。根本原因非数据写入过快,而是缓冲区失控与大KEY共同作用所致。
常见配置
MyBatis配置优先级:方法参数 > resource/url > properties内部。常用属性包括缓存、延迟加载、主键生成等。支持多环境配置,通过environments指定,默认使用development。事务管理可选JDBC或MANAGED,与Spring集成时由容器管理。