SSM框架篇
Spring核心包括IOC(控制反转)和DI(依赖注入),通过容器管理对象及依赖。支持多种Bean作用域与自动装配方式,事务基于AOP与数据库连接实现,代理机制有JDK和CGLIB两种,常用于日志、权限等场景。MyBatis则通过动态SQL、缓存、延迟加载等机制灵活操作数据库,支持多表查询、批量插入并返回主键,#{}防SQL注入,${}用于拼接。
整合Logback,滚动记录+多文件
`logback-spring.xml` 是Spring Boot项目中的日志配置文件,基于Logback实现,支持日志级别、输出路径及滚动策略的灵活配置。它通过`appender`将不同类型的日志(如INFO、ERROR、SQL、请求参数等)输出到指定文件,并支持控制台输出与文件分离。配置中可自定义`LOGHOME`路径、日志格式(PATTERN)和保留天数。结合`LogProxy.getLogger("XXX_LOG")`使用,可在代码中按名称获取对应日志记录器,实现精准日志分类输出,适用于多场景下的日志管理需求。(238字)
无标题
`@Configuration` 注解用于标记配置类,相当于 XML 配置文件。其中 `@Bean` 注解的方法可定义托管给 Spring IoC 容器的 Bean。通过注解方式启动容器后,配置类及其中注册的组件均会被成功加载并管理。
天机迁移
悦康陪诊:基于SpringCloud的医疗陪诊平台,实现医院展示、预约陪诊、评论打分、陪诊师排行榜(Redis ZSET)、优惠券防超卖(Redisson锁)等功能,提升患者就医体验。负责小程序多模块开发与高并发优化。
分页
本文介绍五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、SQL物理分页、数组分页及拦截器分页。对比指出逻辑分页适用于小数据量,而物理分页在大数据场景下更高效、安全,推荐优先使用。
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因未灰度发布的新配置引发空指针异常,导致全球服务中断超7小时。故障暴露了缺乏配置灰度与错误处理的风险。本文结合Nacos等工具,详解基于IP、标签、流量等灰度发布方案,强调通过渐进式发布保障系统稳定的重要性。
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池类故障的常见成因与防范措施。涵盖数据库慢查询、连接池配置不当、超时设置缺失等典型问题,结合真实案例剖析根源,并提出fast-fail、流控背压、合理重试等最佳实践,助力开发者提升系统稳定性。
线程池
本文深入剖析Java线程池的实现原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor的核心机制,解析线程复用、任务队列、调度策略及Executors工具类,帮助开发者理解其底层架构与工作流程。
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,泛型信息不保留到运行期,仅保留原始类型(如Object或限定类型)。通过实例对比和反射操作可验证擦除机制,并揭示其对多态、类型检查、静态成员等的影响及编译器的处理策略。
ArrayList扩容机制
本文深入解析ArrayList的add及扩容机制。通过源码分析,揭示其首次添加元素时默认扩容至10,后续每次扩容为原容量1.5倍的核心逻辑,并详解grow()方法如何通过位运算高效实现动态扩容,同时澄清length、length()、size()等易混淆概念。