Mybatis常见配置
MyBatis配置优先级:方法参数 > resource/url > properties体内。核心属性包括缓存、延迟加载、主键生成等。支持多环境配置,通过environments指定,默认使用default环境。事务管理支持JDBC和MANAGED,与Spring集成时由Spring接管。详细配置参考官方Java API文档。
整合Logback,滚动记录+多文件
logback-spring.xml为Spring Boot项目日志配置文件,支持控制台与文件输出,按级别、模块分离日志(如SQL、支付、定时任务等),通过LogProxy获取指定名称的Logger,实现精细化日志管理,支持滚动记录与自动清理,适用于多环境部署。
物理部署图
物理部署图从运维视角展现系统运行时的硬件配置与软件部署结构,描述节点、构件、物件及连接关系,常用于理解分布式系统。通过UML元素如节点(服务器、Pod)、构件(服务模块)、物件(可执行程序)和通信路径,呈现应用如何在硬件环境中部署运行。
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的常见成因与规避方案。涵盖数据库慢查询、连接池配置不当、自定义线程池使用误区等典型问题,结合真实案例剖析根因,并提出fast-fail、流控背压、谨慎重试等最佳实践,助力开发者提升系统稳定性。
映射关系(1-1 1-n n-n)
MyBatis中通过resultMap实现一对一、一对多、多对一及多对多映射。一对一用于属性与字段映射;一对多通过`<collection>`关联主表与子表集合(如用户对应多个角色);多对一使用`<association>`建立关联(如博客属于作者);多对多借助中间类实现双向集合映射(如用户与部门互相关联),灵活处理复杂关系数据。
GateWay实现原理
Spring Cloud Gateway基于Spring WebFlux与Netty,实现高性能非阻塞通信。启动时创建Netty Server接收客户端请求,经路由匹配与过滤器处理后,由Netty Client转发至目标服务,响应反向经过滤器处理后返回,全程非阻塞,提升系统吞吐能力。(238字)
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,即泛型信息被移除,替换为原始类型(如Object或限定类型)。这导致List<String>和List<Integer>在运行时均为List,引发类型安全、多态冲突等问题。编译器通过桥方法、自动强转等机制解决部分问题,但静态成员不能使用类的泛型参数,且基本类型需用包装类。
整合切面,参数拦截+过滤
该类基于Spring AOP实现请求参数日志记录,通过`@Before`、`@Around`和`@After`切面拦截Controller层方法,自动记录请求来源、URL、方式、参数及执行耗时,便于调试与监控,日志通过LogProxy输出,提升系统可观测性。(238字)
ArrayList扩容机制
本文深入解析ArrayList的add及扩容机制。添加元素时,先调用ensureCapacityInternal()确保容量,首次默认扩容至10;每次扩容为原容量的1.5倍(通过位移运算优化),并结合modCount实现快速增容与赋值。同时辨析length、length()、size()的区别,帮助理解Java中不同数据类型的长度获取方式。
@Configuration
被 `@Configuration` 标注的类视为Spring配置类,等同于XML配置文件。通过 `@Bean` 可定义Bean,替代XML中的 `<bean>` 标签。结合 `AnnotationConfigApplicationContext` 可启动IOC容器,加载并管理配置类及其中的Bean实例。