自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 Maven&Nexus

本文详细介绍Maven的下载与配置,包括环境变量设置、settings.xml中本地仓库与阿里云镜像配置,以及JDK 21的编译适配。通过IDEA集成Maven,按标准目录结构手动创建项目,编写pom.xml和Java代码,使用mvn clean compile编译并生成字节码,最终通过java命令运行程序,并执行mvn install将jar包安装至本地仓库,完成完整构建流程。

2026-11-02 19:01:46 165

原创 Maven && Nexus

Maven是Apache提供的Java项目自动化构建与依赖管理工具,核心功能为项目构建和依赖管理。它通过POM(pom.xml)定义项目坐标(GAV:groupId、artifactId、version),遵循标准化目录结构,实现编译、测试、打包、部署等流程自动化。借助中央仓库与本地/私服仓库,Maven可高效管理jar包及其依赖,避免版本冲突,提升开发效率,是大型Java项目不可或缺的工具。

2026-11-02 18:50:11 245

原创 Java Web 21-22

Thymeleaf 是一个现代Java模板引擎,用于高效生成HTML、XML等静态内容。它解决传统Servlet中前后端耦合、代码冗杂、安全性差等问题,支持自然模板、自动转义防XSS、与Spring深度集成。尽管前后端分离趋势增强,但其在管理后台、快速原型、SEO优化及邮件/文档生成等场景仍具优势,尤其适合轻量级项目与遗留系统改造。

2026-10-12 21:58:03 256

原创 Java Web 17-20

本文介绍了Java Web中转发与重定向的区别。转发是服务器内部跳转,属于一次请求,可共享request域数据;重定向是浏览器发起两次请求,地址栏改变,无法共享request域数据。重定向路径需带项目名且不能访问WEB-INF下受保护资源。使用原则为优先选择作用域小的域对象。

2026-10-11 21:28:43 149

原创 Java Web 11-16

Servlet 生命周期由容器(如 Tomcat)管理,包含实例化、初始化(init)、服务(service)和销毁(destroy)四个阶段。默认首次请求时创建对象,单例多线程运行。init 用于初始化,service 处理每次请求,destroy 释放资源。可通过 <load-on-startup> 配置服务器启动时实例化。禁止在构造方法中编写逻辑,应使用 init 方法替代,以确保反射实例化成功。

2026-10-11 21:22:24 179

原创 Java Web 7-10

本文介绍了开发第一个Servlet的完整流程:创建项目目录结构,编写实现jakarta.servlet.Servlet接口的HelloServlet类,编译并拷贝至WEB-INF/classes,配置web.xml完成Servlet映射,部署至Tomcat的webapps目录,最后通过浏览器访问/hello路径成功显示“Hello Servlet!”。过程中强调了环境变量配置、编译步骤及metadata-complete属性的作用,为后续Java Web开发奠定基础。

2026-10-11 18:32:32 196

原创 Java Web 1-6

BS(Browser/Server,浏览器/服务器)结构是一种基于Web的应用程序架构模式。在这种模式下,用户通过浏览器(如Chrome、Firefox等)访问应用程序,而业务逻辑和数据存储则集中在服务器端。CS(Client/Server,客户端/服务器)结构是一种传统的应用程序架构模式。在这种模式下,需要在用户设备上安装专门的客户端软件,客户端直接与服务器进行通信。近年来,随着Web技术的发展(如HTML5、WebAssembly等),BS结构的功能越来越强大,许多传统CS应用正在向BS迁移。同时,也出

2026-10-10 20:30:47 148

原创 Bean的作用域 && GoF之工厂模式 && Bean的实例化方式

本文介绍了Spring中Bean的作用域,包括默认的singleton(单例)和prototype(原型)模式,前者在容器初始化时创建,后者每次调用getBean()时新建实例。此外,还介绍了仅限Web应用使用的request、session、application等作用域,并简要说明了自定义Scope的实现方式,如通过SimpleThreadScope实现线程级作用域。

2026-10-10 17:26:01 206

原创 MyBatis使用PageHelper && MyBatis的注解式开发

本文介绍了MyBatis中分页的两种实现方式:传统SQL LIMIT分页与PageHelper插件分页。前者需手动计算起始下标,代码冗杂;后者通过PageHelper.startPage()开启分页,结合PageInfo封装分页信息,实现简洁高效。同时,文章简述了MyBatis注解式开发,即在Mapper接口中直接使用注解编写SQL,减少XML配置,但复杂SQL维护成本较高。

2026-10-10 17:02:03 201

原创 MyBatis的缓存 && MyBatis的逆向工程(自动生成对应的pojo mapper 以及sql语句的使用)

本文介绍了MyBatis的缓存机制,包括一级缓存(默认开启,作用于SqlSession)和二级缓存(作用于SqlSessionFactory)。一级缓存基于同一SqlSession的相同查询,而二级缓存需在Mapper文件中配置<cache/>并要求实体类实现Serializable。二级缓存数据在SqlSession关闭或提交后写入,且增删改操作会导致缓存失效。可通过eviction、flushInterval、readOnly等属性优化缓存行为,提升查询性能。

2026-10-10 17:01:30 175

原创 MyBatis的高级映射及延迟加载

本文介绍了MyBatis中多对一关系的三种映射方式:级联属性映射、association标签映射及分步查询。重点讲解了分步查询的实现,通过association的select属性实现延迟加载,提升性能并支持复用。结合班级与学生表结构,演示了配置过程及执行效果,强调了延迟加载在实际开发中的优势。

2026-10-09 18:56:22 145

原创 Mybatis查询语句以及动态sql

本文介绍了MyBatis中查询语句的使用,涵盖返回单个Car对象、List<Car>、Map及List<Map>四种场景。通过resultType配置,可灵活处理不同查询结果类型,强调多条记录必须用集合接收,避免TooManyResultsException异常。同时说明了map为MyBatis内置别名,适用于无对应实体类时的数据映射。

2026-10-09 18:45:04 150

原创 Mybatis技巧以及参数传递

本文介绍了MyBatis中#{}与${}的区别:#{}使用PreparedStatement,防止SQL注入,推荐用于参数传递;${}直接拼接字符串,存在安全风险,仅在动态拼接SQL关键字时使用。通过查询汽车类型(car_type)的实例,演示了#{}的安全用法及配置流程,涵盖依赖、配置文件、实体类、Mapper接口与XML映射文件的完整结构。

2026-10-09 18:42:53 168

原创 Spring对IoC的实现

Spring通过依赖注入(DI)实现控制反转(IoC),降低对象耦合度。以set注入为例,Spring容器根据XML配置中的<property>标签,通过反射调用set方法,将指定bean注入到目标对象属性中,实现Bean的创建与依赖关系的自动维护。

2026-10-09 16:56:23 229

原创 Spring基础使用

本文通过分析传统代码中类之间的高耦合问题,引出开闭原则(OCP)与依赖倒置原则(DIP)的重要性。指出硬编码对象创建导致扩展困难、修改频繁,违背了松耦合设计思想。进而介绍Spring框架的核心理念——控制反转(IoC),通过将对象创建与关系管理交由容器实现,彻底解耦各层代码,支持面向接口编程,提升可维护性与扩展性。最终说明Spring作为轻量级IoC和AOP容器,有效解决了企业应用开发中的复杂性问题。

2026-10-09 15:22:16 256

原创 LeetCode-239. 滑动窗口最大值

【代码】LeetCode-239. 滑动窗口最大值。

2026-10-03 20:54:27 14

原创 LeetCode-560.和为 K 的子数组

一旦存在负数,向右扩大右边界,总和反而有可能变小;向左移动左边界,总和反而变大。总和不再单调递增,左右指针没有办法按照规则收缩窗口,✅ 滑动窗口适用前提:数组全部都是正数。窗口扩大总和一定变大,窗口缩小总和一定变小,存在单调性。preSum[i] = sum_{x=0}^{i-1} nums[x])区间。很多做过子数组滑动窗口题的同学第一反应就是双指针滑动窗口。,每出现一次就代表找到了一段子数组,它的和等于 k。含义:当我们遍历到位置。

2026-10-03 20:21:31 213

原创 LeetCode-438. 找到字符串中所有字母异位词

【代码】LeetCode-438. 找到字符串中所有字母异位词。

2026-10-03 20:06:10 7

原创 LeetCode-3. 无重复字符的最长子串

【代码】LeetCode-3. 无重复字符的最长子串。

2026-10-03 19:52:33 167

原创 LeetCode-42. 接雨水

print(z) # <zip object at 0x…[(1, ‘x’), (2, ‘y’), (3, ‘z’)] =>元组的列表。print(name, age) =》name,age分别取值。

2026-09-29 20:23:54 259

原创 LeetCode-15. 三数之和

【代码】LeetCode-15. 三数之和。

2026-09-29 19:55:31 9

原创 使用javassist生成类 && MyBatis中接口代理机制及使用

本文介绍了使用Javassist动态生成Java类的原理与实践,包括创建类、方法及设置方法体。结合MyBatis的接口代理机制,演示了如何通过Javassist自动生成DaoImpl实现类,利用反射和SqlSession调用对应SQL语句,实现动态代理。该方式为MyBatis底层代理机制提供了实现思路,增强了框架灵活性与可扩展性。

2026-09-28 21:53:04 164

原创 在WEB中的应用

本文介绍了在Web项目中使用MyBatis的完整流程,基于MVC架构实现银行账户转账功能。通过IDEA搭建Maven Web工程,配置Tomcat 10+,完善目录结构并引入MyBatis、MySQL驱动等依赖。重点讲解了SqlSessionFactory、SqlSession、Mapper三大对象的作用域与生命周期,结合ThreadLocal实现线程安全的SqlSession管理。项目采用HTML+Servlet+MyBatis技术栈,不使用JSP,为后续学习接口代理机制奠定基础。

2026-09-28 20:56:25 249

原创 LeetCode-11. 盛最多水的容器

【代码】LeetCode-11. 盛最多水的容器。

2026-09-24 20:10:18 9

原创 LeetCode-283. 移动零

【代码】LeetCode-283. 移动零。

2026-09-23 22:21:54 191

原创 LeetCode-128. 最长连续序列

比如 nums=[3,2,4,5],从 3 开始,我们可以找到 3,4,5 这个连续序列;而从 2 开始,我们可以找到 2,3,4,5 这个连续序列,一定比从 3 开始的序列更长。](前一半都是 1),遍历 nums 的做法会导致每个 1 都跑一个 O(n) 的循环,总的循环次数是 O(n。核心思路:对于 nums 中的元素 x,以 x 为起点,不断查找下一个数 x+1,x+2,x+3,…首先,本题是不能排序的,因为排序的时间复杂度是 O(nlogn),不符合题目 O(n) 的要求。

2026-09-23 20:49:03 246

原创 LeetCode-49. 字母异位词分组

【代码】LeetCode-49. 字母异位词分组。

2026-09-23 20:34:36 123

原创 LeetCode-1. 两数之和

时间复杂度:O(N),其中 N 是数组中的元素数量。对于每一个元素 x,我们可以 O(1) 地寻找 target - x。空间复杂度:O(N),其中 N 是数组中的元素数量。主要为哈希表的开销。参考:菜鸟教程‑Python3 字典。⚠️ 如果键不存在,直接。

2026-09-23 20:16:06 168

原创 苍穹外卖前端-2

注意:开发过程中,并不是所有的代码都实现了再测试,而是开发一部分,就需要测试一下,看效果,如果有问题再调整。前面我们已经实现了前后端数据交互,现在就需要将后端返回的数据通过表格展示出来,我们可以使用ElementUI提供的表格组件,具体使用方法可以参照官方提供的示例 https://element.eleme.io/#/zh-CN/component/table。注意:输入框和按钮都是使用 ElementUI 提供的组件,对于前端的组件只需要参考 ElementUI 提供的文档,进行修改即可。

2026-09-20 20:48:27 178

原创 苍穹外卖前端-1

vue 属于单页面应用,所谓路由,就是根据浏览器路径不同,用不同的视图组件替换这个页面内容。如上图所示:不同的访问路径,对应不同的页面展示。在vue应用中使用路由功能,需要安装Vue-Router:注:创建完带有路由功能的前端项目后,在工程中会生成一个路由文件,如下所示:关于路由的配置,主要就是在这个路由文件中完成的。vuex 是一个专为 Vue.js 应用程序开发的状态管理库vuex 可以在多个组件之间共享数据,并且共享的数据是响应式的,即数据的变更能及时渲染到模板。

2026-09-20 18:49:14 77

原创 Mybatis-2-手写Mybatis

提供一个无参数构造方法,再提供一个build方法,该build方法要返回SqlSessionFactory对象/*** SqlSessionFactory对象构建器/*** 创建构建器对象} /*** 获取SqlSessionFactory对象* 该方法主要功能是:读取godbatis核心配置文件,并构建SqlSessionFactory对象* @param inputStream 指向核心配置文件的输入流* @return SqlSessionFactory对象。

2026-09-19 21:45:24 138

原创 Mybatis-1

本文介绍了MyBatis的基本概念及其在Java开发中的应用。MyBatis是基于JDBC的持久层框架,用于简化数据库操作,实现SQL与Java代码的解耦。它通过XML或注解方式配置SQL,支持自动映射结果集,提升开发效率。文章还对比了JDBC的不足与MyBatis的优势,阐述了其在三层架构中作为数据访问层的角色,并简要说明了MyBatis的特性、版本及入门开发流程,为后续学习奠定基础。

2026-09-14 17:43:50 167

原创 JSON一文速通

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。(notation)标记法易于人阅读和编写易于机器解析和生成比XML更小、更快、更易解析

2026-09-14 17:14:36 206

原创 XML详解-一文速通

XML(eXtensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言,由万维网联盟(W3C)于1998年推出。特性DOM解析SAX解析StAX解析解析模式树形结构(内存加载)事件驱动(推模式迭代器(拉模式内存占用高(整个文档加载)极低(逐行解析)低(仅缓存当前事件)访问方式随机访问顺序访问(不可控,一旦开始停不下来)顺序访问(可控,开始后可灵活控制暂停、继续、跳过等)编程复杂度简单(类DOM操作)复杂(回调接口)中等(迭代器模式)

2026-09-14 16:56:23 346

原创 Apache POI

【代码】Apache POI。

2026-08-14 17:12:00 59

原创 Redis基础

2026-08-12 14:24:01 182

原创 Spring Task AND WebSocket

2026-08-10 16:28:05 51

原创 微信相关开发

基本接口使用以及对应wx返回数据见代码。

2026-08-08 15:52:20 18

原创 新知识DTO AOP

2026-08-07 15:28:14 169

原创 Swagger

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(它的主要作用是:使得前后端分离开发更加方便,有利于团队协作接口的文档在线自动生成,降低后端开发人员编写接口文档的负担功能测试Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

2026-08-04 17:27:56 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除