自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 将ssm聚合项目部署到云服务器上

打开项目源码中的父项目 ev_parent 的 pom.xml 文件,检查各子模块的依赖配置是否正确,确保 Spring、SpringMVC、MyBatis 等第三方组件的版本统一(如 spring-core:5.2.0.RELEASE),避免版本冲突。使用 Navicat 16 连接 MySQL 数据库,打开 Navicat,点击 “连接”,选择 MySQL,输入连接名称、主机名(数据库服务器 IP)、端口(默认 3306)、用户名(root)、密码,点击 “测试连接”,连接成功后点击 “确定”。

2025-08-06 15:51:35 575

原创 雪花算法原理深度解析

结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。1位标识:由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0,所以这第一位都是0。这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的,

2025-07-27 14:45:01 876

原创 MyBatis-Plus IService详解与示例代码解析

是 MyBatis-Plus 提供的顶级服务接口,封装了常用的 CRUD 操作、批量处理、链式查询等功能,旨在简化数据库操作代码。以下从三个维度进行解析。

2025-07-27 09:24:25 637

原创 Java String、StringBuffer 和 StringBuilder 的区别

String 类型和 StringBuffer 的主要性能区别:String 是不可变的对象, 因此在每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,性能就会降低。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。

2025-07-25 21:58:53 528

原创 SpringBoot学习路径二--Spring Boot自动配置原理深度解析

创建文件定义自己的自动配置类使用合适的条件注解@Bean在SPI机制:通过实现扩展点加载条件评估:通过Condition接口实现条件化配置延迟加载:通过实现配置类的延迟处理配置优先级:通过和@Order控制配置顺序Spring Boot的自动配置机制通过这种灵活的条件化方式,既保证了"约定优于配置"的便利性,又提供了足够的灵活性来覆盖默认行为。

2025-07-25 21:42:25 837

原创 SpringBoot学习路径--SpringBoot的简单介绍和项目搭建

在 Java 开发领域,Spring 框架无疑是一座举足轻重的里程碑。而 Spring Boot 的出现,更是让 Java 开发变得前所未有的简单高效。本文将带你全面了解 Spring Boot,从基础概念到实战操作,助你快速上手这一强大的开发框架。

2025-07-25 21:32:39 965

原创 60个Java与Spring核心知识点详解

Least Recently Used(最近最少使用)

2025-07-25 21:19:03 582

原创 Spring学习路径-AOP切面编程

Spring AOP 通过动态代理实现横向逻辑的统一管理,显著减少代码冗余,提高可维护性。核心在于理解。

2025-07-19 17:33:47 878

原创 正则表达式概述

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),是计算机科学中的一个概念。它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式就像 JSON 一样,是一种通用的标准,被多种开发语言所支持,包括 Java、JavaScript、C、C++、C#、Python、SQL 等。在 Javaweb 项目中,正则表达式通常用于前端验证,所以我们接下来将以 JavaScript 为例来学习正则表达式。

2025-07-19 17:19:26 667

原创 AJAX概述

AJAX,全称异步 JavaScript 和 XML(Asynchronous JavaScript and XML),是一种用于创建快速动态网页的技术。它的核心思想是通过在后台与服务器进行少量数据交换,实现网页的异步更新 —— 也就是说,无需重新加载整个网页,就能对页面的某部分进行局部更新。(1)XHTML和CSS的基于标准的表示技术(2)DOM进行动态显示和交互(3)XML和XSLT进行数据交换和处理(4)进行异步数据检索(5)Javascript将以上技术融合在一起。

2025-07-19 17:18:08 662

原创 Cookie 与 Session概述

Cookie,翻译成中文是小甜点、小饼干的意思。在 HTTP 协议中,它代表着服务器送给客户端浏览器的 “小甜点”。实际上,Cookie 就是由一个键和一个值构成的信息,会随着服务器端的响应发送给客户端浏览器。客户端浏览器会将其保存起来,等下一次访问该服务器时,再把 Cookie 发送回服务器。Session 也是域对象之一,其范围在一个会话范围内有效,拥有和等系列方法。在一个会话内共享一个 session 对象,可保存会话内的数据,如当前用户的信息。

2025-07-17 15:58:44 689

原创 Servlet概述

Servlet(Server Let)是运行在 Web 服务器中的小型 Java 程序,主要作用是处理用户请求。当客户端发出请求后,由 Web 服务器(如 Tomcat)找到对应的 Servlet 进行处理。Servlet:处理用户请求的核心组件Filter(过滤器):用于对请求和响应进行拦截和处理Listener(监听器):基于观察者模式,监听 Web 应用中的事件其中,Servlet 是最基础、也是必须 100% 掌握的组件。

2025-07-17 15:38:37 956

原创 Git版本控制完全指南:从入门到精通

在如今的软件开发领域,版本控制工具是团队协作与代码管理的基石。而 Git,作为目前世界上最先进的分布式版本控制系统,早已成为开发者的必备技能。无论是个人项目还是大型团队协作,Git 都能高效地追踪代码变更、管理版本迭代、解决冲突问题。本文将从 Git 的起源讲起,带你全面掌握其核心概念、操作命令与使用方式。

2025-07-16 23:03:59 1028

原创 Spring学习路径-IOC机制

控制反转(Inversion of Control,IOC)是 Spring 框架的核心思想之一,其本质是将对象的创建和依赖关系的管理从程序代码中解耦出来,交给 Spring 容器(Container)负责。传统开发模式:对象 A 需要使用对象 B 时,由 A 自己创建 B 的实例(如new B()),导致 A 与 B 强耦合。IOC 模式:对象 A 的依赖对象 B 由 Spring 容器创建并注入到 A 中,A 无需关心 B 的创建细节,只需被动接受即可。

2025-05-22 17:28:57 596

原创 理解Java泛型

与使用 Object 对象代替一切引用数据类型对象这样简单粗暴方式相比,泛型使得数据类型的类别可以像参数一样由外部传递进来。它提供了一种扩展能力,更符合面向对象开发的软件编程宗旨。当具体的数据类型确定后,泛型又提供了一种类型安全检测机制,只有数据类型相匹配的变量才能正常的赋值,否则编 译器就不通过。所以说,泛型一定程度上提高了软件的安全性,防止出现低级的失误。泛型提高了程序代码的可读性。

2025-05-20 16:38:36 523

原创 ssm项目环境搭建

Spring:核心容器负责 Bean 管理与依赖注入(DI),通过 AOP 实现事务管理、日志记录等功能,简化组件间协作。Spring MVC:基于 MVC 模式的 Web 框架,分离控制器(Controller)、模型(Model)和视图(View),优化前端请求处理流程。MyBatis:ORM(对象关系映射)框架,通过 XML 或注解配置实现 SQL 映射,简化 JDBC 操作,提升数据库访问效率。优势:轻量级、灵活性高、社区资源丰富,适用于中大型 Web 项目开发。

2025-05-20 16:38:02 746

原创 事务(理解)与数据库连接池

事务是数据库提供的一个特性。事务:组成各个数据的执行的单元,要么都成功,要么都不成功。举例:转账的功能,冠希给美美转1000元钱。使用事务先给冠希扣除掉1000元再给美美加上1000元事务结束了。

2025-05-11 13:36:52 903

原创 自定义映射ResultMap —— 一对多、多对多

如果想查询 select u.*,a.money from user u left join account a on u.id = a.uid 语句的内容。在UserMapper接口中定义方法。在User类中添加List的属性。1.执行SQL语句,创建表结构。2.编写JavaBean。

2025-05-02 14:43:45 187

原创 超级详细的 Maven 教程(基础 + 高级)

Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。什么是理想的项目构建?高度自动化,跨平台,可重用的组件,标准化的流程什么是依赖?为什么要进行依赖管理?自动下载,统一依赖管理A1.0 依托于 B 2.0 依托于 C3.0什么是依赖管理对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。什么是项目构建。

2025-05-02 14:21:28 1078

原创 自定义映射resultMap —— 一对一、多对一

resultMap标签下可以创建六种标签,<id>用于添加数据库表中主键的映射关系,<result>用于添加除了主键之外的其他列名的映射关系,此外还有<association>、<collection>、<discriminator>、<consturctor>四种标签,之后会讲解它们的作用,2、如果字段名和实体类中的属性名不一致的情况下,但是字段名符合数据库的规则(使用_),实体类中使用的属性名符合java的规则(使用驼峰命名),可以在MyBatis的核心配置文件中设置一个全局配置信息。

2025-03-21 17:42:54 955

原创 Mybatis的各种查询功能

1.1、搭建module:10mybatis${}的本质就是字符串拼接,采用sql拼接,无法防止sql注入#{}的本质就是占位符赋值 ,采用预编译 防止sql注入1.2、单个字面量类型的参数 int i = 1;如果mapper接口中的方法参数为单个的字面量类型,此时可以使用#{}和${}以任意的名称获取参数的值,如果使用${},注意需要手动添加单引号。1.3、多个字面量类型的参数。

2025-03-21 17:07:13 1158

原创 mysql事务

本文详细解释了事务的概念,包括其原子性、持久性、隔离性和一致性,以及在转账操作中的应用。讨论了事务的四大特性,隔离级别的概念和MySQL中事务的提交与回滚,以及并发问题如脏读、不可重复读和幻读。最后介绍了不同隔离级别的含义和对一致性的保障。

2025-03-20 19:47:12 829

原创 Mybatis简介和项目环境搭建

MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

2025-03-20 01:32:36 898

原创 深入了解 MyBatis 逆向工程

MyBatis 逆向工程,简单来说,就是根据数据库中的表结构,自动生成对应的 Java 实体类、Mapper 接口以及 Mapper XML 文件。以往,开发者需要手动编写这些代码,不仅耗时费力,还容易出错。有了逆向工程,只需进行一些配置,就能快速生成这些基础代码,让开发者将更多精力放在业务逻辑的实现上。​。

2025-03-20 01:02:38 1146

原创 手写一个简易版的tomcat

Tomcat 是一个广泛使用的开源 Servlet 容器,用于运行 Java Web 应用程序。深入理解 Tomcat 的工作原理对于 Java 开发者来说是非常有价值的。本文将带领大家手动实现一个简易版的 Tomcat,通过这个过程,我们可以更清晰地了解 Tomcat 是如何处理 HTTP 请求和响应的。根据以上功能,我们创建如下图所示的包--tomcat类的作用是启动整个tomcat容器--webapp包下存放你自己创建的servlet动态资源。

2025-03-11 19:10:44 1071 1

原创 HTTP 协议简介

通过了解 HTTP 协议的基本概念、特点、工作流程、请求方法、状态码以及发展历程,我们能够更好地理解互联网的运行机制,为开发高效、稳定的网络应用提供坚实的基础。随着互联网技术的不断发展,HTTP 协议也在持续演进,未来它将继续为我们带来更优质的网络体验。

2025-03-06 17:23:37 1852

原创 Tomcat介绍

通过以上步骤,你已经成功安装和部署了 Tomcat,并可以将自己的 Java Web 应用部署到 Tomcat 上进行测试和运行。在实际开发中,还可以根据项目需求对 Tomcat 进行进一步的配置和优化,如调整线程池大小、配置虚拟主机等。希望本文能帮助你顺利开启 Java Web 开发之旅,享受 Tomcat 带来的便捷与高效。

2025-02-27 20:06:56 747

原创 Java基础——代理模式

代理模式是一种比较好理解的设计模式。简单来说就是。

2025-02-19 23:35:46 1284

原创 java基础——抽象类与接口

抽象类是一种不能被实例化的类,它为子类提供了一个通用的模板。抽象类可以包含抽象方法和具体方法。抽象方法是没有方法体的方法,它只定义了方法的签名,具体的实现需要由子类来完成。在 Java 中,使用abstract关键字来定义抽象类和抽象方法。接口是一种完全抽象的类型,只包含抽象方法和常量。在 Java 8 及以后的版本中,接口还可以包含默认方法和静态方法。默认方法提供了接口方法的默认实现,子类可以选择是否重写;静态方法则可以直接通过接口名调用。使用interface关键字来定义接口。重写。

2025-02-18 13:29:17 739

原创 java基础——IO流

是字节输入流,用于从文件中读取字节数据。int data;= -1) {

2025-02-16 21:53:41 690

原创 java断点调试(debug)

断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。进行分析从而找到这个Bug断点调试是程序员必须掌握的技能。断点调试也能帮助我们查看java底层源代码的执行过程,提高程序员的Java水平。

2025-02-15 21:19:33 1346

原创 git版本控制工具介绍

分布式版本控制中,每个开发者的本地仓库都是一个完整的版本库,包含了项目的所有历史记录和版本信息。所有的版本数据都集中管理,开发者需要与中央服务器进行交互来进行版本控制操作(SVN),便于团队协作,但如果中央服务器出现故障,所有的版本会有丢失风险。通过创建不同的分支,开发人员可以在各自的分支上独立地进行开发、测试等工作,互不干扰。创建好后取SSH地址,创建一个用于接收远程仓库的文件夹,输入克隆命令:git clone 输入你自己的SSH地址,刚开始创建仓库的小伙伴会遇到警告,因为仓库中没有文件,不必理会。

2025-02-14 21:32:48 1671 2

原创 java反射机制

Java 反射机制是 Java 语言中的一个重要特性,它允许程序在运行时获取和操作类的信息,包括类的构造函数、方法、字段等,并且能够动态地创建对象、调用方法和访问字段。

2025-02-13 23:29:18 826

原创 java集合详解

Java 集合框架是 Java 提供的一组用于存储和操作数据的类和接口,它位于java.util包中。集合框架提供了丰富的数据结构和算法,能够帮助开发者更高效地处理和管理数据。以下将从集合框架的体系结构、主要接口和类、常用操作等方面进行详细介绍。

2025-02-12 22:45:17 982

原创 java异常处理

在 Java 中,还可以自定义异常类来满足特定的业务需求。自定义异常类通常继承自Exception类(检查型异常)或类(非检查型异常)。// 自定义异常类try {// 可能会抛出MyException的代码throw new MyException("这是一个自定义异常");// 处理自定义异常System.out.println("捕获到自定义异常:" + e.getMessage());合理地使用 Java 异常机制可以使程序更加健壮、易于维护和调试。

2025-02-12 19:38:39 1304

原创 java中的包装类

自动装箱:指的是将基本数据类型自动转换为对应的包装类对象。例如,把int类型的值直接赋给Integer类型的变量,Java 编译器会自动完成从int到Integer的转换。自动拆箱:与自动装箱相反,它是将包装类对象自动转换为对应的基本数据类型。例如,把Integer类型的对象直接赋给int类型的变量,编译器会自动将Integer对象转换为int值。

2025-02-11 23:57:37 693

原创 == 和 equals方法详解

=运算符对于基本数据类型,比较的是值是否相等。对于引用数据类型,比较的是引用是否指向同一个对象。equals方法在Object类中,默认比较的是引用是否相等。许多类会重写equals方法,以实现基于对象内容的比较。在使用equals方法时,要注意对象是否重写了该方法,以及重写后的比较规则。

2025-02-11 21:55:12 690

原创 java中的Object类

在 Java 中,Object,也就是说ObjectObject。如果一个类没有显式地声明继承自某个父类,那么它默认继承自 Object类。下面从几个方面详细介绍 Object。

2025-02-11 19:44:28 270

原创 java基础——多态的作用、概念及用法理解

多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话。多态的本质是父类引用指向子类对象,多态允许将子类的对象当作父类的对象使用,某父类型的引用指向其子类型的对象,调用的方法是该子类型的方法。这里引用和调用方法的代码编译前就已经决定了,而引用所指向的对象可以在运行期间动态绑定。

2025-02-11 13:28:37 1351

原创 Java中的继承:理解、应用与最佳实践

在面向对象的编程语言中,继承是一种重要的概念。Java作为一门流行的编程语言,继承是其面向对象编程(OOP)的核心特性之一。本文将详细介绍Java中的继承概念、工作原理以及最佳实践。

2025-02-09 23:22:12 407

空空如也

空空如也

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

TA关注的人

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