- 博客(21)
- 收藏
- 关注
原创 Spring AOP 面向切面编程完全指南 [特殊字符]
Spring AOP 是一个强大的面向切面编程框架,它通过动态代理机制实现了横切关注点的模块化。✅干净整洁- 分离关注点✅易于维护- 集中化管理✅高度复用- 一处定义,多处使用✅灵活扩展- 非侵入式增强希望这篇指南能帮助你更好地理解和使用 Spring AOP!😊👨💻👩💻小提示:在实际项目中,建议将AOP配置放在独立的配置类中,便于管理和维护。记得根据具体业务场景选择合适的通知类型和切入点表达式哦!✨。
2025-12-22 21:15:20
679
原创 MyBatis XML映射配置与日志系统全解析
在现代Java企业级开发中,数据持久化和日志记录是两个至关重要的环节。MyBatis作为优秀的ORM框架,提供了灵活的SQL映射方式;而Logback作为成熟的日志框架,则是应用监控和问题排查的利器。本文将深入探讨这两种技术的配置与最佳实践。MyBatis提供了两种SQL映射方式:🎯 法则二:namespace精确匹配🎯 法则三:方法名与SQL ID一致1.3 完整的XML映射文件示例1.4 XML映射文件位置配置在Spring Boot的中配置:多环境配置示例:📁 第二章:配
2025-12-18 13:22:51
696
原创 [特殊字符] JUnit单元测试完全指南:从入门到企业级应用
JUnit单元测试主要用于验证类中方法的正确性,它是开发者验证代码逻辑的第一道防线。断言是JUnit提供的辅助方法,用于验证被测试方法是否按预期工作。如果断言失败,测试将标记为失败。✅基础概念:JUnit的作用、优势、命名规范✅核心技能:断言的使用、各种注解的应用✅企业实践:测试覆盖原则、最佳实践✅高级特性:参数化测试、依赖管理记住:好的测试不是负担,而是你代码的保镖!🛡️每个测试用例都是对未来修改的一份保险,投资时间写测试,就是投资项目的稳定性和可维护性。
2025-12-10 19:03:36
1120
原创 MyBatis 中 ${} 和 #{} 的深入解析
优先使用#{}:99% 的场景都应该使用预编译方式谨慎使用${}:仅在动态 SQL 片段且参数可控时使用绝不信任用户输入:所有${}参数必须在 Java 层验证。
2025-12-02 14:35:53
961
原创 JavaWeb 中的 Filter 详解
请求预处理和响应后处理链式处理机制灵活的配置方式强大的拦截能力统一的字符编码处理身份认证和授权请求日志记录性能监控安全防护跨域处理数据压缩等Filter 的设计遵循了 AOP(面向切面编程)的思想,使得横切关注点能够与业务逻辑分离,提高了代码的可维护性和复用性。
2025-11-19 15:21:20
1190
原创 Servlet详解
方面解释是什么用于扩展 Web 服务器功能的 Java 服务器端程序。核心角色控制器,接收、处理 HTTP 请求并生成动态响应。关键生命周期init()->service()doGet()doPost()->destroy()主要优点高性能、跨平台、健壮、是 Java EE 体系的基石。现代定位是 Spring MVC 等现代 Java Web 框架的底层基础,虽然开发者不常直接编写,但它无处不在。简单来说,Servlet 是 Java Web 技术的基石。
2025-11-17 20:35:37
1139
原创 全网最详细的JS数组详解
方法改变原数组返回值使用场景时间复杂度push/pop✅新长度/元素栈操作O(1)✅新长度/元素队列操作O(n)splice✅删除元素任意位置增删O(n)map❌新数组数据转换O(n)filter❌新数组数据筛选O(n)reduce❌累积值数据聚合O(n)find❌元素查找单个O(n)some/every❌布尔值条件检查O(n)掌握 JavaScript 数组方法是现代前端开发的基石。通过本文的详细讲解和实际案例,相信你已经对数组操作有了更深入的理解。
2025-10-15 20:33:23
405
原创 ArrayList扩容机制详解
容量10 → 扩容到15(10 × 1.5)容量15 → 扩容到22(15 × 1.5,整数运算)扩容因子始终是1.5倍使用位运算>> 1代替除法/ 2提高性能这种1.5倍的扩容策略在空间利用和性能之间取得了很好的平衡,既不会造成太多空间浪费,又减少了频繁扩容的开销。
2025-10-14 20:53:37
531
原创 Java 中的单例类(Singleton)
实现方式线程安全懒加载性能推荐度饿汉式✅❌好★★★懒汉式(同步)✅✅差★★双重检查锁✅✅好★★★★静态内部类✅✅好★★★★★枚举✅❌好★★★★★最佳实践建议如果需要懒加载:使用静态内部类方式如果不需要懒加载:使用枚举方式(最安全)避免使用简单的懒汉式(线程不安全)考虑序列化、反射、克隆等安全问题。
2025-09-27 20:47:50
579
原创 java中ArrayList 和 LinkedList 详细解析
特性ArrayListLinkedList底层结构动态数组双向链表随机访问头部插入尾部插入内存效率⭐⭐⭐⭐☆ (较少开销)⭐⭐☆☆☆ (指针开销)缓存友好⭐⭐⭐⭐⭐ (连续内存)⭐☆☆☆☆ (内存碎片)迭代性能⭐⭐⭐⭐⭐ (很快)⭐⭐⭐☆☆ (一般)80% 的情况选择ArrayList需要频繁在头部操作时选择LinkedList不确定时先使用 ArrayList,遇到性能问题再考虑 LinkedList。
2025-09-19 18:44:42
447
原创 Java中toString()详解
场景正确用法错误用法自定义类重写toString()使用 Object 的默认实现数组直接调用toString()多维数组直接调用toString()集合直接使用(已重写)记住:良好的toString()实现可以极大提高调试效率!
2025-09-19 18:39:17
831
原创 Java对象详解
Java对象是类的实例,是面向对象编程的基本单元。它包含了状态(数据)和行为(方法)。基于类创建:对象是类的实例包含状态和行为:字段存储数据,方法定义行为封装性:通过访问修饰符控制可见性独立性:每个对象有自己的内存空间通过引用访问:变量存储的是对象的引用(地址)生命周期管理:由JVM通过垃圾回收自动管理对象是Java面向对象编程的基石,理解和熟练使用对象是成为Java开发者的关键一步。
2025-09-17 16:53:58
463
原创 JAVA比较器与比较对象
特性比较对象 (通过Comparable比较器 (通过Comparator接口方法比较对象当前对象this) 与另一个对象o两个参数对象o1和o2包位置java.lang(自动导入)java.util(需要导入)用途定义对象的自然排序(默认规则)定义自定义排序(额外规则)对类的影响修改原始类(需要实现接口)不修改原始类(创建外部比较器)排序调用数量一个类只能有一种自然排序一个类可以有多种比较器(多种排序方式)
2025-09-16 20:32:14
548
原创 Vue分页实战:8步打造完美体验
这个计算属性会根据过滤后的文章总数和每页显示数量计算出总页数。使用 Math.ceil 向上取整确保所有文章都能显示。
2025-09-16 18:03:06
164
原创 Vue3创建前端项目
作者:ly-lmd1.创建、运行Vite项目完成Node.js安装以及npm包管理器配置后,便可以使用npm包管理器安装Vite。npm并没有图形可视化界面,同样也是在cmd终端中使用命令行操作,。
2025-09-16 13:40:29
741
原创 Java狼人杀游戏
if(role.getRole().equals("预言家") && role.getStatus().equals("存活")) {if(role.getRole().equals("女巫") && role.getStatus().equals("存活")) {if(role.getRole().equals("猎人") && role.getStatus().equals("存活")) {if(role.getId()==id && role.getStatus().equals("存活")){
2025-09-16 11:35:18
816
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅