自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tomcat 的几种部署方式

不同的部署方式各有优劣,选择合适的部署方式取决于具体的项目需求和环境条件。开发环境:推荐使用webapps目录自动部署或 Manager 应用程序,方便快捷。测试环境:可以考虑使用文件进行模块化部署,便于管理和调试。生产环境:建议采用server.xml或文件的手动配置,确保稳定性和安全性,并结合 CI/CD 工具实现自动化部署。

2025-02-06 14:30:06 1078

原创 探索 DeepSeek:人工智能领域的创新先锋

在人工智能(AI)技术日新月异的今天,DeepSeek 作为一家致力于 AI 技术研发和应用的公司,正以其卓越的技术实力和创新精神,在 AI 领域崭露头角。公司开发的智能客服系统、智能写作助手等产品,已经广泛应用于金融、教育、电商等行业。DeepSeek 利用 AI 技术辅助医生进行疾病诊断、药物研发、医疗影像分析等,提高医疗诊断的准确性和效率,为患者提供更优质的医疗服务。DeepSeek 将积极探索人工智能与云计算、大数据、物联网等技术的融合,创造新的应用场景,推动 AI 技术在更广泛的领域落地应用。

2025-02-06 13:15:32 780

原创 Java语言的数据结构

Java的数据结构丰富多样,每种结构都有其适用的场景。选择合适的数据结构不仅可以提高代码的可读性和维护性,还能显著提升程序的性能。理解不同数据结构的特点和差异,有助于编写更高效的Java程序。

2025-01-17 23:34:29 1088

原创 SpringSecurity-前后端分离

try {// 设置当前线程的安全上下文。

2025-01-16 23:27:03 877 1

原创 RuoYi框架上传图片或文件到阿里云OSS详细教程

为了提供一个更加详细的教程,我们将深入探讨每个步骤,并添加一些额外的细节和最佳实践建议。以下是关于如何在Ruoyi框架中集成阿里云OSS实现文件上传功能的详尽指南。

2025-01-15 22:41:42 956

原创 【若依框架】代码生成详细教程,15分钟搭建Springboot+Vue2前后端分离项目,基于Mysql8数据库和Redis5,管理后台前端基于Vue2和Element Plus

通过上述步骤,你已经成功地搭建了一个完整的 SpringBoot + Vue2 前后端分离项目,集成了 MySQL 8 和 Redis 5,并使用了 Element Plus 作为前端 UI 框架。这只是一个起点,随着项目的进展,你可能还需要进一步定制和优化各个部分的功能。

2025-01-14 21:14:10 320

原创 Windows 环境下安装和启动 Redis 服务

以上三种方法都可以帮助你在 Windows 上成功安装和启动 Redis 服务。对于大多数用户来说,使用 Chocolatey 或 Docker 可能是最简便且可靠的选择。无论采用哪种方式,请确保按照官方文档中的指导进行操作,并考虑安全性最佳实践,如设置强密码、限制网络访问等。

2025-01-13 21:00:59 695

原创 Token和JWT的关系详细讲解

是一种开放标准 (RFC 7519),定义了一种紧凑且自包含的方式用于在网络应用环境间安全地传输信息。这些信息经过数字签名(使用 HMAC 算法或 RSA 公私钥对)以确保其完整性和不可篡改性。Token 和 JWT 是紧密相连却又各自独立的概念。理解这两者之间的区别有助于选择最适合项目需求的身份验证方案。JWT 作为一种轻量级、安全且易于使用的 Token 实现方式,在当今的 Web 开发中得到了广泛应用。

2025-01-11 20:43:59 745

原创 Redis 安装与 Spring Boot 集成指南

通过以上步骤,你应该能够在本地成功安装 Redis,并且将它与 Spring Boot 应用程序集成起来。这不仅有助于提高应用程序的性能,还能为开发者提供一个强大的工具来管理和优化数据存储。

2025-01-10 21:14:24 1142 1

原创 Spring六的新特性

Spring 6 引入了多个重要的新特性,这些特性旨在提高开发者的生产力、性能优化以及对现代应用架构的支持。

2025-01-09 21:10:47 559

原创 JavaScript 延迟加载的方法

如果需要更复杂的控制或者兼容性考虑,可以使用 JavaScript 来检测元素是否进入视口,并在适当的时候加载图片。'/',});});延迟加载不仅仅局限于图片和脚本,还可以应用于各种类型的资源和场景。利用现代浏览器提供的新特性(如 Intersection Observer、动态导入等),结合传统的优化手段(如 Prefetch 和 Preload),可以构建出更加高效且响应迅速的 Web 应用。

2025-01-08 20:12:38 816

原创 Java Development Kit (JDK) 1.8

Java8引入了许多重要的新特性,显著提升了语言的功能性和开发者的生产力。这些特性不仅使代码更加简洁和易于维护,还增强了性能和并发处理能力。希望这些介绍能帮助你更好地理解和利用Java8的新特性。

2025-01-07 20:36:09 370

原创 Java I/O 深度解析:java.io 包的全面指南

java.io包提供了全面且灵活的工具集,帮助开发者轻松地完成各种 I/O 操作。理解这些基础类的工作原理以及它们之间的关系对于编写高效、可靠的 Java 程序至关重要。希望上述介绍能够为你提供足够的信息来掌握 Java 的 I/O 功能。

2025-01-06 20:50:53 596

原创 MySQL的三大日志

MySQL 的三大日志——错误日志、二进制日志和慢查询日志——各自承担着不同的职责,共同维护着数据库的安全性、可靠性和高效性。理解这些日志的作用及其配置方法,有助于更好地管理和优化 MySQL 数据库系统。

2025-01-05 12:14:25 338

原创 Vue 组件通信的七种常见方法

Vue.js 提供了丰富多样的组件通信方式,每种方法都有其适用场景。理解并熟练掌握这些技术可以帮助我们构建更加模块化、可维护的应用程序。选择合适的通信方式取决于具体的项目需求和技术栈。

2025-01-03 20:58:04 404

原创 MyBatis 与 MyBatis-Plus 的区别

MyBatis 和 MyBatis-Plus 都是用于简化 Java 应用程序与数据库交互的持久层框架,但它们在功能、易用性和性能优化方面存在显著差异。下面将详细介绍两者之间的区别,并通过具体的代码示例进行对比。假设我们有一个名为 的实体类及其对应的数据库表 ,接下来展示如何使用 MyBatis 和 MyBatis-Plus 分别实现基本的 CRUD 操作。②配置 XML 文件(可选)如果选择不使用注解,则需要创建相应的 XML 文件来进行 SQL 映射:2. 使用 MyBatis-Pl

2025-01-02 20:55:25 757

原创 MyBatis 使用的设计模式详解

MyBatis 通过巧妙运用多种设计模式,不仅提高了代码的可读性和可维护性,还增强了系统的灵活性和扩展性。理解这些设计模式及其在 MyBatis 中的具体应用,可以帮助我们更好地掌握这个强大的持久层框架,从而开发出更高效、更稳定的 Java 应用程序。

2024-12-31 22:26:20 950

原创 Redis 深度解析:从入门到精通

是一种基于内存的非关系型数据库,它不仅可以用作缓存,还可以用作消息队列、会话管理等。Redis 支持多种数据结构如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,这使得它非常适合用于构建高性能的应用程序。

2024-12-30 21:05:29 802

原创 深入理解 MVCC:多版本并发控制详解

是一种并发控制方法,它允许多个事务同时读取和写入同一行数据而不必相互阻塞。这是通过为每一行数据维护多个版本实现的,每个事务都可以看到一个一致的数据快照,即使其他事务正在对该行进行修改。

2024-12-29 11:40:40 1065

原创 项目需求分析流程

项目需求分析是软件开发或任何工程项目中至关重要的第一步。它帮助确保团队理解客户的需求,并为后续的设计、开发和测试工作提供指导。

2024-12-27 21:38:49 691

原创 JVM的详细介绍

JVM 是 Java 生态系统的核心,它不仅提供了跨平台的能力,还通过高效的垃圾回收机制和性能调优手段确保了应用程序的高效运行。

2024-12-26 21:21:18 1175

原创 Java 异常类详细介绍

异常类层次结构Java 的异常类继承自Throwable类,所有异常类都位于java.lang包中。Checked Exceptions(受检异常):在编译阶段就必须处理的异常。Unchecked Exceptions(非受检异常):通常由编程错误引起,在编译时不强制处理。你可以通过继承Exception或// 使用自定义异常throw new MyCustomException("这是一个自定义异常");Java 的异常处理机制提供了强大的工具来管理程序中的错误情况。

2024-12-25 22:57:24 770

原创 项目里用到了哪些设计模式是怎么使用的?

应用场景:当一组相关联的对象需要一起使用时,可以提供一个接口来创建这些对象。实现方式:定义一个抽象工厂接口,包含多个创建不同类型产品的抽象方法;具体工厂则实现了这些方法来创建一系列相关的具体产品。项目应用:适用于构建复杂的系统,比如图形用户界面库可能需要根据不同操作系统创建相应的窗口、按钮等控件。// 抽象工厂接口// 具体工厂 - Windows风格@Override@Override// 客户端代码以上只是部分常用的设计模式及其简单示例。

2024-12-24 23:14:39 995 1

原创 Java 中的面向对象编程 (OOP) 概念

面向对象编程是 Java 核心理念之一,它通过类、继承、多态、封装和接口等特性,使得代码更加模块化、可维护和易于扩展。(Class)是创建对象的蓝图或模板,定义了对象的属性(字段)和行为(方法)。Java 支持两种类型的多态:编译时多态(通过方法重载实现)和运行时多态(通过方法重写实现)。(Interface)定义了一组抽象方法,任何实现了该接口的类都必须提供这些方法的具体实现。(Inheritance)允许一个类(子类)从另一个类(父类)继承属性和方法,从而实现代码复用和层次化设计。

2024-12-23 20:20:04 736

原创 双亲委派机制

双亲委派机制(Parent Delegation Model)是 Java 类加载器体系结构的一部分,用于决定如何以及由哪个类加载器来加载一个特定的类。在 Java 中,每个类都有一个对应的 Class 对象,这个对象是在该类第一次被加载到 JVM 时创建的。Java 的类加载器使用了层次结构,并且默认遵循“双亲委派”的原则。根据这种机制,当一个类加载器收到类加载请求时,它首先不会自己尝试去加载这个类,而是把这个请求委派给父类加载器完成。

2024-12-21 17:19:43 485

原创 深入理解 MySQL 索引

MySQL 索引是一个强大而又复杂的特性,正确地设计和使用索引可以极大地提升数据库性能。希望本文提供的知识和建议能够帮助你在项目中更好地应用 MySQL 索引,从而构建高性能的数据库系统。就像一本书的目录或索引部分,可以让你迅速找到你感兴趣的章节或段落,数据库索引也使得查询操作更加高效。当执行一个带有 WHERE 条件的 SELECT 查询时,MySQL 首先会检查是否有可用的索引。虽然索引可以极大提高查询速度,但它们也有一些缺点,比如增加了插入、更新和删除操作的成本,因为每次修改数据都需要同步更新索引。

2024-12-20 21:09:56 893

原创 MyBatis的面试题以及详细解答二

【代码】MyBatis的面试题以及详细解答二。

2024-12-19 21:02:50 795

原创 MyBatis的面试题以及详细解答

MyBatis 是一个半自动化的对象关系映射(ORM)框架,它简化了 Java 应用程序与数据库的交互。它通过 XML 或注解为 Java 方法配置 SQL 语句,并负责执行这些语句以及将结果映射到 Java 对象。

2024-12-18 23:14:41 326

原创 深入了解 MyBatis:简化 Java 数据库交互

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL 查询、存储过程和高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数及获取结果集的工作。通过 XML 或注解的方式,MyBatis 可以将接口方法直接映射到数据库操作上,使得数据库访问变得更加简洁和直观。

2024-12-17 21:16:23 983

原创 CDN工作原理

CDN全称是 Content Delivery Network/Content Distribution Network,翻译过的意思是内容分发网络。内容:指的是静态资源比如图片、视频、文档、JS、CSS、HTML。分发网络:指的是将这些静态资源分发到位于多个不同的地理位置机房中的服务器上,这样,就可以实现静态资源的就近访问比如北京的用户直接访问北京机房的数据。所以,简单来说,CDN 就是将静态资源分发到多个不同的地方以实现就近访问,进而加快静态资源的访问速度,减轻服务器以及带宽的负担。

2024-12-16 23:14:59 740

原创 超时和重试详解

超时机制说的是当一个请求超过指定的时间(比如 1s)还没有被处理的话,这个请求就会直接被取消并抛出指定的异常或者错误(比如连接超时(ConnectTimeout):客户端与服务端建立连接的最长等待时间。读取超时(ReadTimeout):客户端和服务端已经建立连接,客户端等待服务端处理完请求的最长时间。实际项目中,我们关注比较多的还是读取超时。一些连接池客户端框架中可能还会有获取连接超时和空闲连接清理超时。如果没有设置超时的话,就可能会导致服务端连接数爆炸和大量请求堆积的问题。

2024-12-15 19:28:43 728

原创 MySQL 数据库事务实践

事务是一系列作为一个整体执行的操作序列,要么全部成功,要么完全不执行。它提供了对数据库操作的一种可靠方式,确保数据的一致性和完整性。例如,在银行转账过程中,扣款和存款必须同时成功或失败,否则会导致资金丢失或重复。通过上述内容的学习,你应该已经掌握了 MySQL 事务的基本概念及其在实际应用中的使用方法。理解事务的 ACID 特性、掌握不同的锁机制以及正确设置事务隔离级别,都是编写高效且可靠的数据库应用程序的基础。

2024-12-13 20:00:29 938

原创 分布式 ID 介绍

日常开发中,我们需要对系统中的各种数据使用 ID 唯一表示,比如用户 ID 对应且仅对应一个人,商品 ID 对应且仅对应一件商品,订单 ID 对应且仅对应一个订单。我们现实生活中也有各种 ID,比如身份证 ID 对应且仅对应一个人、地址 ID 对应且仅对应一个地址。简单来说,ID 就是数据的唯一标识。分布式 ID 是分布式系统下的 ID。分布式 ID 不存在与现实生活中,属于计算机系统中的一个概念。我简单举一个分库分表的例子。我司的一个项目,使用的是单机 MySQL。

2024-12-12 22:18:17 637

原创 MySQL锁

在 MySQL 中,当发生死锁时,MySQL 使用一种叫做"最小成本回滚"(InnoDB 中称为"最小编号事务回滚")的策略来选择一个事务作为牺牲者并进行回滚,最小成本回滚策略是 MySQL 的默认行为,它会自动选择牺牲者并回滚事务。最小成本回滚策略的原理是选择最小成本的事务作为牺牲者。

2024-12-11 21:09:36 1035

原创 Java 序列化

如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。序列化:将数据结构或对象转换成可以存储或传输的形式,通常是二进制字节流,也可以是 JSON, XML 等文本格式反序列化:将在序列化过程中所生成的数据转换为原始数据结构或者对象的过程。

2024-12-10 22:07:10 762

原创 Spring 事务详解

事务是逻辑上的一组操作,要么都执行,要么都不执行。相信大家应该都能背上面这句话了,下面我结合我们日常的真实开发来谈一谈。我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。事务能否生效数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的innodb引擎。但是,如果把数据库引擎变为myisam,那么程序也就不再支持事务了!事务最经典也经常被拿出来说例子就是转账了。

2024-12-09 22:32:26 1034

原创 SQL增删改操作

放心,如果要删除很多张表,可以写脚本来进行删除。:现有一张用户信息表,其中包含多年来在平台注册过的用户信息,随着牛客平台的不断壮大,用户量飞速增长,为了高效地为高活跃用户提供服务,现需要将部分用户拆分出一张新表。对于这题而言,可以用在 minute 函数里面,因为 TIMEDIFF 计算出来的是时间的差值,在外面套一个 MINUTE 函数,计算出来的就是分钟数。,结构如下表,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。

2024-12-08 21:54:05 1022

原创 Web 实时消息推送详解

推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应用。消息推送通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移动设备 APP 进行的主动消息推送。消息推送一般又分为 Web 端消息推送和移动端消息推送。移动端消息推送示例:移动端消息推送示例Web 端消息推送示例:Web 端消息推送示例在具体实现之前,咱们再来分析一下前边的需求,其实功能很简单,只要触发某个事件(主动分享了资源或者后台主动推送消息),Web 页面的通知小红点就会实时的+1。

2024-12-06 20:58:25 794

原创 RPC基础知识

gRPC 和 Thrift 虽然支持跨语言的 RPC 调用,但是它们只提供了最基本的 RPC 框架功能,缺乏一系列配套的服务化组件和服务治理功能的支撑。Dubbo 不论是从功能完善程度、生态系统还是社区活跃度来说都是最优秀的。而且,Dubbo 在国内有很多成功的案例比如当当网、滴滴等等,是一款经得起生产考验的成熟稳定的 RPC 框架。最重要的是你还能找到非常多的 Dubbo 参考资料,学习成本相对也较低。下图展示了 Dubbo 的生态系统。

2024-12-05 20:42:42 838

原创 NoSQL基础知识

NoSQL(Not Only SQL 的缩写)泛指非关系型的数据库,主要针对的是键值、文档以及图形类型数据存储。并且,NoSQL 数据库天生支持分布式,数据冗余和数据分片等特性,旨在提供可扩展的高可用高性能数据存储解决方案。NoSQL 数据库可以存储关系型数据—它们与关系型数据库的存储方式不同。NoSQL 数据库非常适合许多现代应用程序,例如移动、Web 和游戏等应用程序,它们需要灵活、可扩展、高性能和功能强大的数据库以提供卓越的用户体验。NoSQL 数据模型。

2024-12-04 22:11:21 700

空空如也

空空如也

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

TA关注的人

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