- 博客(72)
- 收藏
- 关注
原创 SpringBoot配置文件详解
本文详细介绍了SpringBoot配置文件的使用方法。主要内容包括:1.热部署配置,通过spring-boot-devtools实现快速开发;2.配置文件基础,比较properties和yml格式,重点讲解YAML语法;3.配置文件值注入的两种方式(@Value和@ConfigurationProperties)及其区别;4.配置文件高级特性如占位符、Profile配置、加载顺序等;5.自动配置原理及条件注解使用;6.实践建议,推荐使用YAML格式、Profile分离环境配置等最佳实践。文章全面讲解了Spr
2025-07-27 14:45:00
795
原创 springBoot创建项目的五种方式
摘要:本文介绍了5种创建SpringBoot项目的方法:1)IDEA直接创建(推荐新手,零配置);2)Spring官网下载导入;3)阿里云脚手架(国内镜像速度快);4)Maven改造(需手动配置pom.xml和启动类);5)IDEA通过阿里云直接创建。重点说明了IDEA创建的标准目录结构,包含启动类、resources配置等核心要素,并提供了不同方式的适用场景和注意事项。
2025-07-27 09:59:51
1017
原创 java测试题(下)
本文系统梳理了Spring框架的核心概念与应用实践。主要内容包括:1)依赖注入(DI)的实现方式与IoC容器原理;2)Bean作用域、生命周期及设计模式应用;3)Spring MVC处理流程与AJAX交互;4)声明式与编程式事务管理对比;5)MyBatis动态SQL、缓存机制及与JDBC对比;6)Shiro认证授权流程。同时分析了常见内存泄漏问题及防范措施,为Java开发者提供了完整的Spring生态技术参考。文章重点突出了注解配置、线程安全、性能优化等企业级开发关注点。
2025-07-26 16:33:02
555
原创 SSM项目之逆向工程
MyBatis Generator(MBG) 的逆向工程能力:一张数据表 → 一键生成 Entity、Mapper、XML,几分钟就搭好 DAO 层。本文把项目中的实践提炼成体系化知识点,带你从 0 到 1 玩转逆向工程。
2025-07-15 12:39:57
719
原创 SSM项目上传文件的方式及代码
在 Spring + SpringMVC + MyBatis(SSM)项目里,文件上传几乎是标配功能。本文把一段可直接落地的 UploadController 代码拆解成 5 个关键步骤,并给出可复用的模板写法,让你 10 分钟就能在自己的项目里跑起来。
2025-07-12 14:40:53
428
原创 SpringAOP
Spring框架通过依赖注入(DI)技术实现控制反转(IoC),自动将对象所需的依赖注入到目标对象中,简化了对象间的依赖关系管理。Spring支持多种DI注入方式,如set方法注入和构造方法注入。此外,Spring与JUnit的整合简化了单元测试,通过注解如@RunWith和@ContextConfiguration,测试类可以直接使用Spring管理的Bean。Spring还提供了事务管理功能,确保数据一致性,支持声明式和编程式事务。JDBC模板简化了数据库操作,减少了重复代码。注解开发使得配置更加简洁,
2025-05-15 22:47:01
1256
原创 深入浅出 JDBC 与数据库连接池
本文介绍了Java开发中与数据库交互的核心技术——JDBC和数据库连接池。JDBC是Java操作数据库的标准API,通过注册驱动、获取连接、执行SQL语句等步骤实现数据库操作。文章详细讲解了JDBC的基础开发步骤,并提供了查询操作的代码示例。此外,文章还介绍了如何通过工具类和配置文件简化JDBC操作,以及JDBC事务管理的概念和操作。最后,文章探讨了数据库连接池的作用和优势,介绍了常见的开源连接池如DBCP、C3P0和Druid,并提供了使用Druid连接池的配置和工具类代码。
2025-05-10 17:17:50
1308
原创 SpringMVC 拦截器详解与实战
SpringMVC 拦截器是一种非常实用的机制,通过它可以灵活地对请求进行拦截和处理。在实际开发中,我们可以通过拦截器实现用户权限验证、日志记录、性能监控等多种功能。本文通过详细讲解拦截器的基本概念、方法、执行流程以及实际案例,帮助读者深入理解 SpringMVC 拦截器的使用方法和应用场景。希望本文对大家在学习和使用 SpringMVC 框架时有所帮助。
2025-03-27 14:28:01
1083
1
原创 SpringMVC 请求与响应处理详解
本文详细介绍了 SpringMVC 中请求和响应的处理方式,包括 RequestMapping 注解的使用、参数绑定、Servlet API 的应用、重定向与转发、JSON 响应、文件上传下载以及异常处理等内容。通过这些技术点的讲解和示例,开发者可以更高效地使用 SpringMVC 构建功能完善的 Web 应用。
2025-03-25 14:37:09
520
原创 SpringMVC 配置与应用详解
Model(模型):负责处理数据和业务逻辑,通常包括实体类和业务处理类。View(视图):负责与用户交互,展示数据,如 JSP、HTML 页面等。Controller(控制器):负责接收用户请求,调用模型进行处理,并将结果返回给视图。这种分层设计降低了代码的耦合度,提高了代码的可维护性和可扩展性。本文详细介绍了 SpringMVC 的配置过程、核心组件以及实际应用案例。通过入门案例,读者可以快速上手 SpringMVC 的基本使用;
2025-03-25 12:57:30
934
原创 Spring AOP深度解析:从概念到实战
AOP(Aspect Oriented Programming),即面向切面编程,是一种编程范式,它通过预编译方式或者运行期动态代理实现程序功能的统一维护。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容。Spring AOP是Spring框架中的一个重要功能,它通过面向切面编程的方式,将横切关注点从业务逻辑中分离出来,实现了代码的复用和功能的增强。本文深入解析了Spring AOP的核心概念、底层原理以及实战应用,帮助读者全面掌握这一强大工具。
2025-03-23 10:45:00
1278
原创 Spring IOC深入解析:从原理到实践
Spring框架是一个开源的Java EE框架,它最初由Rod Johnson在2003年创建。Spring框架的核心理念是通过IOC和面向切面编程(AOP)来解决企业应用开发中的复杂性问题。松耦合:通过IOC容器管理对象的创建和依赖关系,使得对象之间的耦合度大大降低。AOP支持:提供面向切面编程的支持,方便实现日志记录、事务管理等功能。声明式事务管理:通过配置文件即可完成事务的管理,无需手动编写事务代码。方便集成。
2025-03-22 20:48:32
1033
原创 MySQL事务全解析:从概念到实战
事务是数据库中一个完整的业务流程,是一个不可再分的工作单元。它与数据操作语言(DML)语句紧密相关,因为DML语句(如INSERT、UPDATE、DELETE)会改变数据库中的数据,而事务就是要保证这些操作的完整性和一致性。举个例子,一个网上购物的流程可能包括:检查库存、下单、扣款、发货等多个步骤,这些步骤共同构成了一个事务。只有当所有步骤都成功完成,整个事务才算成功;如果其中任何一个步骤出错,整个事务都会回滚,恢复到事务开始之前的状态。事务是数据库操作中不可或缺的一部分,它保证了数据的完整性和一致性。
2025-03-20 15:57:49
1067
原创 DIY Tomcat:手写一个简易Servlet容器
通过手写这个简易的 Tomcat,我们深入理解了 Servlet 容器的基本工作原理,包括 Socket 编程、请求解析、Servlet 的加载和调用等关键环节。虽然这个实现功能简单,但它为我们进一步学习和研究 Tomcat 的源码提供了宝贵的实践经验。在未来的学习中,我们可以继续完善这个简易 Tomcat,添加更多的功能,如支持静态资源的访问、会话管理、过滤器和监听器等,逐步使其功能更加丰富和完善,向真正的 Tomcat 靠拢。
2025-03-08 12:04:03
803
原创 HTTP与HTTPS:从原理到实践,深入解析Web通信的奥秘
HTTP(HyperText Transfer Protocol,超文本传输协议)是客户端与服务器之间进行通信的标准协议。它定义了客户端如何向服务器发送请求以及服务器如何响应这些请求。HTTP协议是无状态的,即每次请求都是独立的,服务器不会保存请求之间的状态信息。HTTP和HTTPS是Web开发的基础协议,Cookie和Session则是解决HTTP无状态问题的关键机制。通过本文的介绍,相信你已经对这些技术有了更深入的理解。
2025-03-01 19:35:49
1325
原创 深入解析Tomcat目录结构
通过本文的介绍,相信你对Tomcat的目录结构有了更深入的了解。掌握这些知识,可以帮助你更好地配置和管理Tomcat,提高开发和部署的效率。希望本文对你有所帮助!
2025-02-26 18:34:04
1142
原创 Java IO 流核心技术全解析
IO(Input/Output)即输入和输出,是指程序与外部设备(如硬盘、键盘、显示器等)进行数据交互的过程。在 Java 中,IO 流被抽象为流对象,通过这些流对象可以方便地实现数据的读取和写入操作。例如,从文件中读取文本内容、将数据写入数据库等操作都可以通过 IO 流来完成。本文详细介绍了 Java IO 流的核心概念、分类、常用类及实战技巧。通过学习字符流和字节流的相关知识,以及掌握文件复制、字符编码处理等实战技巧,你已经具备了在 Java 开发中处理各种 IO 操作的能力。
2025-02-20 22:00:00
753
原创 Java 代理模式深度解析:静态代理与动态代理的实战指南
给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。代理对象可以在不修改目标对象的情况下,对目标对象的功能进行增强或控制访问。代理模式是 Java 开发中非常重要的设计模式,静态代理和动态代理各有优缺点,适用于不同的场景。在实际开发中,动态代理由于其灵活性和可扩展性,被广泛应用在 AOP、RPC 等领域。通过本文的代码示例和思维导图,相信你对 Java 代理模式有了更深入的理解。希望这篇文章对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言,我们一起交流学习!😊。
2025-02-19 16:25:37
1035
原创 Java 反射机制深度解析:类信息的来源、declared 的区别、赋值操作及暴力反射
为了更好地理解反射机制,我们先来看一下Student// 私有字段// 公共字段// 默认访问权限字段// 受保护字段// 私有方法// 公共方法// 默认访问权限方法// 受保护方法// 构造器类信息的来源:类信息从源码文件经过编译生成字节码文件,再由类加载器加载到内存中,生成Class对象。与get的区别获取当前类中声明的所有成员,包括私有成员;get只获取公共成员,包括父类的公共成员。使用类信息赋值。
2025-02-18 19:36:28
917
原创 Java 中的抽象类与接口:深入解析与实践
抽象类:通过关键字定义。接口:通过interface关键字定义。我们重写了/*** 对数组进行排序* @param o 需要排序的数组*/return;// 定义基准值while (i!= j) {j--;i++;// 交换元素// 将基准值放到中间位置// 递归排序左右两部分抽象类:适用于类与类之间有明显的继承关系,且需要共享代码的场景。接口:适用于定义一组行为规范,供多个类实现的场景,强调功能的扩展。
2025-02-17 14:40:50
793
原创 深入剖析 Java 异常体系:从理论到实战
throw 关键字用于在程序中手动抛出一个异常。我们可以在代码的任何位置使用 throw 关键字抛出一个异常对象,这个异常对象可以是 Java 自带的异常类的实例,也可以是我们自定义的异常类的实例。通过 throw 关键字,我们可以在程序运行过程中根据特定的条件主动触发异常,以便更好地控制程序的执行流程和错误处理逻辑。throw new IllegalArgumentException("年龄不能为负数");// 继续其他逻辑。
2025-02-12 16:45:00
1068
原创 Java 中的 128 陷阱与自动拆装箱深度解析
这个范围的选择是为了在性能和内存消耗之间取得平衡。-128 到 127 是一个常用的范围,大多数情况下可以满足需求,同时避免了过多的缓存对象占用内存。==:比较的是基本数据类型的值或引用数据类型的引用。equals():比较的是引用数据类型的内容(前提是该类重写了equals()方法)。通过本文的介绍,我们深入了解了 Java 中的 128 陷阱、自动拆装箱、==与equals()的区别,以及hashCode()方法的作用和与equals()方法的关系。128 陷阱Integer。
2025-02-11 20:10:13
863
原创 Java 中的 Object、equals() 和 hashCode() 深度剖析
=:比较的是基本数据类型的值或者引用数据类型的引用。equals():比较的是引用数据类型的内容(前提是该类重写了equals()方法)。通过本文的介绍,我们深入了解了 Java 中的Object类、equals()方法和hashCode()方法的核心知识点。Object类是所有类的父类,提供了基本的方法。equals()方法用于定义对象相等的逻辑,可以通过重写来自定义比较行为。hashCode()方法与equals()方法紧密相关,只有同时重写这两者,才能保证对象在哈希表等数据结构中的正确性。
2025-02-11 19:18:54
1084
原创 探索 Java 多态的奥秘
编译时多态:主要指方法的重载(Overloading),通过方法名相同、参数列表不同实现。运行时多态:主要指方法的重写(Overriding),通过子类重写父类方法实现,运行时根据对象的实际类型动态绑定方法。在 Java 中,运行时多态的应用更为广泛,它借助向上转型和动态绑定机制,使得程序具有更高的灵活性和扩展性。通过本文的详细分析,我们了解到 Java 多态的实现机制和应用价值。多态使得程序更加灵活、可扩展,是面向对象编程的核心优势之一。希望读者通过本文能够深刻理解多态的原理,并在实际开发中熟练运用。
2025-02-10 16:00:46
626
原创 Java中的继承及相关概念
在 Java 中,继承是一种允许一个类继承另一个类的特性。通过继承,子类可以获取父类的属性和方法,这有助于减少代码冗余并提高代码的可维护性。通过继承,子类可以获取父类的属性和方法,并在此基础上添加自己的特性。是继承机制中的常见概念,理解它们的区别和使用场景对于编写高质量的 Java 代码至关重要。类加载过程中,静态块和静态变量初始化的顺序会影响程序的输出。在继承中,子类可以继承父类中的方法和属性。静态块用于类的初始化,执行顺序按照代码中的位置顺序。方法,展示了如何在子类中调用父类的方法。
2025-02-08 20:49:52
988
原创 请求转发和重定向
客户端发出第一个请求,被服务器处理,处理后服务器给客户端一个相应(一个新的地址),当客户端收到新的请求之后,立马根据新地址再次发起请求 地址栏中地址是变的。这样运行S01的时候不仅能打印S01也能将S02中的内容打印出来 但是浏览器中访问的还是S01。在请求传参时比如传账号密码接受并打印那么请求转发可以接收到重定向不可以。当客户端请求到达后,服务器将请求进行转发,地址栏中的地址不变。在访问S01是状态发生改变也会访问到S02并实现其中的打印。想要访问WEB-INF中内容只能用请求转发。
2025-01-13 12:52:08
246
原创 计算机数据存储形式和编码
10010100--------------------------->惊天的BUG---------------------->计算机机存储数据一定不会存储数据的源码,因为源码两个相反数相加的结果不是0。100000000(补码)-----------数据类型决定数据在内存当中的存储形式,所以截取后8位--------》00000000--------------->0。计算机如何定义数值类型的数据------------------>数据类型:决定数据在内存当中的存储形式。二进制---》八进制。
2024-12-26 23:05:54
703
原创 servlet中根据请求类型做出判断
再HttpServlet中做出判断如果是Get则执行doGet方法但由于是抽象类无法直接执行方法,会选择让子类实现,可以进一步通过request获取的path进行判断为first还是second等再执行其对应的方法,这就将信息落实到了具体上。接收到浏览器客户端发出的信息后获取注解和请求方式并封装到Request类的对象中。在HttpServlet中实现service方法来更好的匹配http的请求方式。抽象类实现了接口那么抽象类可以有选择的实现接口中的方法。实现接口类,就必须实现该接口类当中的所有方法。
2024-12-17 09:15:00
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人