- 博客(145)
- 收藏
- 关注
原创 Java GUI编程:从入门到精通
GUI(Graphical User Interface)图形用户界面,与CLI(命令行界面)的主要区别在于其可视化的操作界面和事件驱动的编程模型。GUI提供了丰富的组件库支持,能够为用户带来更好的体验。Java GUI开发的两大体系是AWT(Abstract Window Toolkit)和Swing。AWT基于本地系统组件,属于重量级组件,功能相对简单。而Swing是AWT的增强版,采用纯Java实现,属于轻量级组件,拥有更丰富的组件库和更好的跨平台性。
2025-06-25 21:27:17
1127
原创 SpringMVC核心组件与处理流程全解析
Spring MVC通过DispatcherServlet作为中央调度器,利用HandlerMapping定位处理器,HandlerAdapter执行Controller方法,处理模型数据后通过ViewResolver和View进行视图渲染(或直接输出数据)。配合强大的注解体系,实现了清晰的MVC分层和高效的Web请求处理。理解这些核心组件及其交互流程是掌握Spring MVC的基础。
2025-06-25 21:25:19
465
原创 Postman
页面会自动检测你的操作系统,显示对应版本下载按钮(如 "Download for Windows")。:安装完成后自动启动 Postman,桌面和开始菜单会生成快捷方式。:可将 Postman 图标拖到 Dock 栏方便启动。:存放认证 Token、通用配置(如超时时间)切换环境:顶部右上角下拉菜单选择环境(如。(可选) 添加描述、授权规则、预请求脚本。→ 查看右侧响应体(应返回输入的参数)→ 选择目标集合 → 命名请求(如。:点击 👁️ 图标 (右上角) →。设置请求方法、URL、参数等。
2025-06-25 21:05:56
1142
原创 JDBC 获取数据库连接
掌握使用 DriverManager 获取数据库连接的核心概念、完整流程、代码实现及最佳实践。传统方式(JDBC 4.0前)现代方式(JDBC 4.0+)子协议:标识数据库类型。子名称:包含连接详情。
2025-06-25 21:03:59
825
原创 编程语言底层机制与性能对比分析
本分析从底层机制到实际表现构建技术决策框架,涵盖五个核心维度:编译机制、执行模型、内存管理、性能特征和跨平台实现。每个维度包含对比表格、公式推导及代码示例,帮助开发者根据实时性要求、团队能力或部署环境等因素进行技术选型。
2025-06-25 21:03:39
811
原创 Spring Bean生命周期全解析
目录Spring Bean 生命周期详解一、完整生命周期流程图二、详细生命周期阶段1. 实例化阶段(Instantiation)2. 属性赋值(Populate Properties)3. 设置容器信息(Aware 接口回调)3.1 BeanNameAware3.2 BeanFactoryAware3.3 ApplicationContextAware3.4 其他 Aware 接口4. BeanPostProcessor 前置处理5. 初始化阶段(Initialization)5.1 @PostConstr
2025-06-24 20:40:57
693
原创 Spring Bean配置方法解析
适用场景:动态注册Bean,如框架集成或运行时生成Bean。优点是完全编程控制;缺点是需要处理Spring底层API。适用于插件系统或自定义扩展。// CustomBeanRegistrar.java:实现BeanDefinitionRegistryPostProcessor@Override// 创建Bean定义// 设置类名// 设置为单例// 注册到容器// 配置类中注册@Bean。
2025-06-24 20:17:02
665
原创 Spring声明式事务管理实战指南
声明式事务通过解耦事务管理与业务逻辑,大幅提升开发效率和代码可维护性。在 Spring 框架中,结合注解和 AOP 机制,开发者仅需简单配置即可实现健壮的事务控制。深入理解传播行为、隔离级别等核心概念至关重要,同时需规避常见陷阱(如自调用失效),以确保事务系统的可靠性。
2025-06-24 18:10:53
954
原创 MyBatis注解解析
场景推荐方案简单CRUD操作直接使用@Select@Insert等注解多参数查询@Param注解命名参数列名-属性名映射@Results@Result一对一/一对多关系@One@Many嵌套查询简单动态SQL<script>标签内嵌XML复杂动态SQL动态生成SQL批量操作@Flush+ BATCH 执行器存储过程调用复杂结果映射结合XML定义 resultMap需要二级缓存最佳实践原则简单优先:优先使用注解实现简单逻辑。复杂XML:动态SQL和复杂映射优先采用XML配置。
2025-06-24 10:26:02
988
原创 MyBatis嵌套结果映射解析
场景推荐方案说明简单一对一/一对少关系嵌套结果映射(JOIN)一次查询完成复杂多层嵌套嵌套结果映射减少数据库交互大数据量一对多嵌套查询+懒加载避免单次返回过大结果集多对多关系嵌套结果映射+中间表JOIN单次查询完成需要动态选择子类鉴别器(Discriminator)根据字段值映射不同子类结果集结构不规则嵌套到Map结构灵活处理非标准对象最佳实践原则优先考虑单次查询完成(嵌套结果映射)大数据量关联使用懒加载或分批查询始终声明<id>属性避免结果重复。
2025-06-24 10:09:42
743
原创 MyBatis执行器解析
执行器类型核心特点适用场景SIMPLE默认执行器,每次执行后关闭Statement对象常规单条SQL操作REUSE复用预编译Statement对象(相同SQL仅编译一次)高频重复SQL执行BATCH批量操作,延迟执行SQL,统一提交大批量数据插入或更新。
2025-06-24 09:29:09
907
原创 MyBatis解析:核心原理与高效实践
MyBatis 通过平衡灵活性与易用性,成为 Java 持久层的主流选择。核心在于SQL 可控性和动态映射能力,适合中大型项目。建议结合具体业务(如高并发系统)优化缓存和 SQL 设计,并利用社区资源(如 MyBatis Generator 自动生成代码)提升效率。
2025-06-23 21:32:13
915
原创 深入解析InetAddress类核心功能
类提供了处理 IP 地址和主机名之间转换的核心功能,包括 IP 地址与主机名解析、地址类型判断、可达性检查以及本地地址获取。以下是一个简单的示例,展示了如何使用。
2025-06-23 18:37:34
256
原创 MyBatis二级缓存配置全攻略
优先使用LRU策略:平衡性能与通用性合理设置刷新间隔:根据数据变动频率调整(如高频数据设短间隔)只读模式优化性能:无修改需求时启用;读写模式确保线程安全定期监控关键指标:重点关注命中率与内存占用复杂场景选高级实现:如Ehcache或Redis应对高并发或分布式需求性能收益:合理配置可提升应用性能3-10倍,但需精细平衡数据时效性与资源开销。
2025-06-23 17:03:15
561
原创 Spring MVC <form:form> 标签全解析
利用JSTL标签动态生成表单字段,适用于字段数量不确定的场景。如需自定义CSRF令牌,可禁用自动生成功能,并通过Spring Security的。标签的完整功能,可构建高效、安全且用户友好的Spring MVC表单应用。标签可自动生成CSRF令牌,无需手动配置。:在安全配置中自定义CSRF令牌存储策略。在表单中添加多个提交按钮,并通过控制器区分操作逻辑。:处理表单显示和提交,包含数据验证和重定向逻辑。:构建用户注册表单,集成错误显示和动态下拉框。:在控制器中确保添加模型对象。:提交后字段值为null。
2025-06-23 12:14:52
754
原创 MyBatis一级缓存失效机制解析
失效场景触发条件是否自动影响范围使用频率写操作✅当前SqlSession高事务提交✅当前SqlSession高事务回滚✅当前SqlSession中手动清空❌当前SqlSession中配置flushCacheMapper中配置✅当前SqlSession低关闭SqlSession✅整个缓存高存储过程执行存储过程✅当前SqlSession低。
2025-06-23 12:08:41
804
原创 SpringMVC拦截器与视图渲染解析
通过配置@Override// 注册自定义视图解析器// 配置JSP视图解析器preHandle:执行轻量级操作,如权限验证或日志记录。postHandle:用于模型数据增强。:处理资源清理。
2025-06-23 11:47:49
636
原创 MyBatis一级缓存存储机制剖析
特性说明数据结构键对象复合键CacheKey(含 SQL、参数、环境等因子)值对象查询结果原始对象(非副本)线程安全否(与SqlSession的非线程安全设计一致)生命周期与SqlSession共存亡清空机制通过实现瞬时清空设计哲学轻量高效,优化单线程会话场景相同查询返回同一对象引用(HashMap 值复用)。SQL 或参数细微变化导致缓存未命中(CacheKey哈希变化)。写操作后缓存瞬时失效(clear()清空 HashMap)。
2025-06-23 10:47:33
891
原创 SpringMVC拦截器执行流程解析
preHandle顺序:按注册顺序执行(I1 → I2 → I3)postHandle逆序:按注册反序执行(I3 → I2 → I1)afterCompletion逆序:按注册反序执行(I3 → I2 → I1)中断规则:任一preHandle返回false,后续拦截器都不执行当某个拦截器preHandle返回false后续拦截器的preHandle都不执行处理器不执行已执行拦截器的会执行(按逆序)postHandle方法不会执行(因为处理器未执行)执行顺序preHandle:顺序执行(1→2→3)
2025-06-23 10:43:17
833
原创 MyBatis一级缓存深度解析与最佳实践
(语句+参数),MyBatis 仅执行一次数据库操作,后续直接从内存返回结果。:减少重复查询,提升性能(尤其适用于循环操作同一数据的场景)。时,Spring 会将多个操作绑定到同一。:通过日志观察 SQL 执行次数。:SQL语句、参数值、分页参数(,一级缓存持续生效至事务结束。级别的缓存(默认开启)。
2025-06-23 10:18:51
647
原创 MyBatis一级缓存深度解析
在同一个SqlSession对象中,如果多次执行完全相同的SQL语句和参数查询同一数据库记录,MyBatis会将首次查询结果存储在内存中(即一级缓存),后续重复查询直接从缓存获取,而不再访问数据库。本质:MyBatis为当前数据库会话(SqlSession)提供的内存缓存仓库。用途:避免重复查询。同一会话内,完全相同的SQL和参数查询首次访问数据库,结果存入缓存;后续查询直接从缓存获取,提升速度。范围:仅限当前会话。新SqlSession拥有独立缓存。失效时机。
2025-06-23 10:12:55
984
原创 Spring事务传播机制全解析
事务传播机制最佳实践:REQUIRED(默认选择):确保事务原子性,适用于90%的业务场景REQUIRES_NEW:创建独立事务,适合辅助性操作(9%场景)其他传播模式:仅用于特殊业务场景(1%)// 最佳实践示例@Service// 主业务方法使用默认REQUIRED传播// 核心业务操作// 独立事务的辅助操作try {// 确保不影响主业务流程// 核心业务方法明确指定REQUIRED@Service// 审计操作使用独立事务。
2025-06-22 21:45:06
749
原创 Spring事务管理:从编程式到声明式的进阶之路
关注点分离:事务管理与业务逻辑解耦配置集中化:统一管理事务属性维护简便性:修改事务策略不影响业务代码错误处理自动化:自动回滚异常事务声明式编程:通过元数据表达意图。
2025-06-21 21:12:42
682
原创 SpringJDBC具名参数实战指南
具名参数在Spring JDBC中通过更清晰的SQL:命名参数自解释,提升可读性。更安全的绑定:减少参数顺序错误风险。更简洁的代码:支持自动对象属性映射。更灵活的复用:参数可重复使用于多个查询。// 1. 自动映射对象属性// 2. 复杂场景使用MapSqlParameterSource// 3. 高频SQL预解析// 4. 结合事务管理具名参数是现代Spring数据库访问的首选方式,特别在复杂业务中,它能显著提升代码的可读性、可维护性和安全性。
2025-06-21 17:47:20
713
原创 Spring JdbcTemplate从入门到精通
JdbcTemplate 是 Spring 框架提供的核心 JDBC 工具类,通过封装 JDBC API 的复杂性,实现了简洁安全的数据库访问。简化代码:自动管理数据库连接、语句和结果集异常转换:将检查型 SQLException 转为运行时 DataAccessException资源管理:自动释放数据库资源安全参数:提供多种参数绑定方式防范 SQL 注入结果映射:简化结果集到对象的转换过程提供简洁API简化JDBC操作自动处理资源管理和异常支持多种参数绑定和结果映射。
2025-06-21 15:09:14
920
原创 Spring异常处理:SimpleMappingExceptionResolver详解
SimpleMappingExceptionResolver 是 Spring MVC 提供的基于配置的异常解析器,用于将特定异常映射到对应的错误视图页面,提供了一种简单且声明式的异常处理方式。
2025-06-21 14:02:26
907
原创 SpringMVC自定义视图解析器解析
在 Spring MVC 框架中,ViewResolver(视图解析器)承担着将控制器返回的逻辑视图名转化为实际视图对象(如 JSP、Thymeleaf 模板等)的重要职责。当内置的标准视图解析器无法满足特定业务需求时,开发者可以通过自定义视图解析器来实现特殊逻辑。// 内置视图缓存机制views/// 通过配置注入租户ID@Override// 构建租户特定路径// 检查租户视图是否存在// 回退到默认视图// 实际实现应检查文件是否存在= null;
2025-06-21 00:00:00
872
原创 Spring MVC 局部异常与全局异常
在单个控制器内部处理异常只对该控制器中的方法有效使用注解标记方法处理整个应用的异常使用注解可以处理所有控制器抛出的异常特性局部异常处理全局异常处理作用范围单个控制器整个应用实现方式优先级高低(当两者都存在时)代码复用低高维护性分散集中适用场景控制器特定异常通用异常处理处理404错误不支持支持(通过局部异常处理:用于控制器内部特定异常,使用全局异常处理:用于统一处理应用异常,使用最佳实践使用统一错误响应格式区分客户端错误(4xx)和服务器错误(5xx)记录异常日志保护敏感信息。
2025-06-20 21:23:26
819
原创 JSP EL表达式详解与应用指南
作为JSP 2.0规范的核心特性(2003年发布),EL表达式提供了一种简洁的数据访问方式,能够方便地获取变量、JavaBean属性和集合元素等内容。相比传统的JSP脚本表达式(<%= %>),EL语法更加直观,同时也避免了直接嵌入Java代码的安全风险。EL最初是JSTL(JSP标准标签库)的一部分,后来被纳入JSP规范成为标准特性。
2025-06-20 00:00:00
907
原创 SpringMVC模型数据传递
Override@Override// 将自定义对象属性存入Request域// 设置视图名称注册自定义处理器@Override最佳实践指南简单场景:推荐使用,代码简洁明了精准控制:选用,特别是需要动态确定视图时原生API访问:可考虑,但建议谨慎使用全局数据:通过方法统一添加RESTful API:直接返回或数据// 综合最佳实践示例return mav;) {
2025-06-20 00:00:00
232
原创 SpringMVC数据转换与校验解析
3. 自定义错误消息八、最佳实践总结 分层校验策略:前端:基本格式验证(HTML5 验证)控制器:数据格式和业务规则验证服务层:核心业务逻辑验证数据库:最终数据完整性约束转换器与格式化器选择:简单转换:使用 需要本地化的转换:使用 复杂业务转换:在服务层实现校验优化技巧: 性能注意事项:避免在转换器中进行耗时操作缓存转换器和格式化器实例对大型集合使用惰性绑定安全建议:
2025-06-19 21:19:19
556
原创 SpringMVC注解:@ResponseBody与@RequestBody详解
输出数据到响应体,构建 API 响应:解析请求体数据,接收前端提交的复杂对象组合使用:实现完整的 RESTful 请求-响应闭环(如掌握这两个注解是 Spring MVC 开发 RESTful 服务的核心基础!
2025-06-19 16:04:26
388
原创 Spring MVC 中 Servlet API 的使用详解
虽然 Spring MVC 提供了许多高级抽象,但在某些场景下直接使用 Servlet API 仍然是必要的。合理使用 Servlet API 的关键在于:在需要底层访问时使用(如文件操作、流处理)优先选择 Spring 的高级抽象以提高开发效率和代码可读性理解线程安全性和作用域问题在控制器中直接声明等参数作为首选方法通过结合 Spring MVC 的高级特性和原生 Servlet API,开发者可以灵活应对各种复杂需求,同时保持代码的简洁性和可维护性。
2025-06-19 00:00:00
776
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人