自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程--并发基础

本文系统性地探讨了多线程编程中的核心概念与解决方案。首先阐述了进程与线程的区别,指出线程作为轻量级执行单元能够提升程序并发性能,但会引发线程安全问题。文章详细分析了线程安全问题的三大根源:CPU缓存导致的可见性问题、上下文切换引发的原子性问题,以及编译器优化带来的有序性问题。针对这些问题,Java提供了volatile关键字保证可见性与有序性,通过synchronized和Lock实现原子性操作,并引入CAS无锁算法作为非阻塞同步方案。

2025-07-30 17:22:04 621

原创 IOC实现原理源码解析

Spring三级缓存流程图。

2025-07-30 14:29:01 200

原创 IOC控制反转与DI依赖注入

本文详细介绍了Spring框架中的IOC(控制反转)和DI(依赖注入)核心概念。主要内容包括:1)通过创建Maven项目案例演示XML配置方式管理Bean;2)解释IOC是将对象控制权交给容器管理的思想,DI是实现IOC的具体方式;3)分析Bean的三种装配策略(ByName/ByType)和三种配置方式(XML/Java/注解);4)详解依赖注入的三种方式(setter/构造器/注解)及复杂类型注入;5)介绍常用注解(@Component/@Autowired等)及其区别。

2025-07-29 10:18:58 1189

原创 AOP面向切面编程

本文介绍了Spring AOP的基本概念和应用。AOP(面向切面编程)是一种横向切割关注点的编程范式,用于解耦日志、事务等横切关注点。文章对比了Spring AOP和AspectJ框架的特点,Spring AOP基于动态代理实现,AspectJ则更强大但复杂。详细讲解了AOP核心术语(切面、切入点、通知等)和五种通知类型的使用方法,包括前置、后置、环绕等通知。通过一个简单案例演示了AOP的实际应用,展示了如何在不修改原有代码的情况下增强方法功能。

2025-07-28 11:10:11 1255

原创 Spring事务详解

我们的系统中,每个业务方法都可能包括了多个原子性的数据库操作,就比如下面的addUser()方法中,就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,要么都执行,要么都不执行。玩意这两个操作之间突然出现错误,比如银行系统崩溃或者网络故障,导致小明的余额减少,但是小红的余额没有增加,这样就不对了。事务就是要保证这两个关键操作要么都成功,要么都失败。另外,数据库事务的ACID四大特性是事务的基础。

2025-07-25 17:49:28 1084

原创 事务的隔离级别(一文搞懂事务隔离级别!!!)

对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题。通过设置事务的隔离级别来解决并发问题。2、如何避免事务的并发问题?1、事务并发问题有哪些?

2025-07-25 17:01:13 227

原创 索引详解(优缺点,何时需要创建索引,及索引与sql语句优化)

数据库索引是一种优化查询性能的数据结构,类似于书籍目录,通过空间换时间提升检索效率。索引类型包括主键索引、唯一索引、复合索引等,各有适用场景。使用索引能加速查询、排序和分组,但会增加存储开销并降低增删改效率。索引设计需考虑字段使用频率、数据量及重复度,避免在更新频繁或低区分度列上创建。常见索引失效情况包括:对索引列使用函数、LIKE前导通配符、OR条件、违反最左前缀原则等。维护时需注意统计信息更新和数据库配置优化,小表或数据分布不均时可能无需索引。

2025-07-25 09:43:54 1053

原创 CentOS 7.6 配置IP

2025-07-22 16:44:26 132

原创 物理机安装Linux系统(centos7.6)

本文详细介绍了使用U盘安装CentOS 7.6系统的完整步骤:首先准备8G以上U盘和系统镜像,使用UltraISO制作启动盘;然后设置U盘为第一启动项进入安装界面,选择中文语言和带GUI的服务器环境;重点说明了手动分区的操作方法,包括创建/删除分区、调整容量和挂载点设置;最后完成root密码设置、用户创建及许可协议确认。整个流程涵盖了从启动盘制作到系统安装配置的全过程,为初学者提供了清晰的CentOS安装指引。

2025-07-22 16:29:21 556

原创 Centos 7.6 系统镜像下载--阿里巴巴镜像

2、点击连接跳转至阿里云开源镜像网站,点击“7/”,不要点击7.6,7.6点击之后里面是空的。5、选择“Centos-7-x86_64-DVD-2009.iso”点击下载。本文主要介绍Centos 7.6 镜像文件的下载。3、找到“isos/”,点击进入。4、点击“X86_64/”

2025-07-22 16:10:21 290

原创 HTTP摘要认证(Digest Authentication)原理与实现详解

摘要认证(Digest Authentication)是一种基于HTTP协议的安全认证机制,最初在RFC 2617中定义。它采用哈希加密方式传输认证信息,避免了基本认证中密码明文传输的安全风险。

2025-07-22 11:07:47 844

原创 跨网络访问数据库解决方案:基于Nginx的MySQL代理配置指南

选择建议开发测试环境推荐Nginx代理方案生产环境建议使用VPN或专业数据库网关通过本文介绍的Nginx代理方案,您可以安全高效地实现外网服务访问内网数据库的需求。建议在实际部署时结合具体网络环境和安全要求进行调整,并做好全面的测试验证。

2025-07-22 09:45:43 617

原创 Java 断言工具类:优雅处理参数校验与异常提示

Java参数校验利器:断言工具类实践指南 传统参数校验使用if-else存在代码冗余、可读性差等问题。本文提出使用Assert断言工具类结合自定义异常的统一校验方案,通过: 封装常用校验方法(非空、非空字符串、数值范围等) 支持模板化异常消息和JDK8的Lambda表达式 提供Spring集成和扩展建议 对比HibernateValidator等方案的优劣 该方案可显著简化Controller、Service层的参数校验代码,提高开发效率,统一异常处理逻辑。典型应用场景包括用户信息校验、金额校验、集合校验等

2025-07-21 17:46:18 82

原创 Java-复杂表头的Excel导入

本文介绍了使用Java实现复杂表头Excel导入功能的方法。通过EasyExcel框架处理多级表头和合并单元格。该方法适用于需要导入具有复杂表头结构的Excel文件场景。

2025-07-21 17:17:10 1175

原创 使用Nginx代理MinIO的完整指南:实现Web界面与API接口的远程访问

本文介绍了使用Nginx代理MinIO对象存储的完整方案。MinIO是一款兼容Amazon S3 API的高性能对象存储服务器,适用于云环境部署。针对内网部署需要外网访问的场景,文章详细讲解了Nginx代理配置,包括API接口(9000端口)和Web界面(9001端口)的代理设置,重点解决了WebSocket连接、静态资源路径修正(sub_filter)等关键问题。同时提供了常见问题解决方法,如sub_filter模块加载、资源加载失败排查等,并给出安全加固、性能优化等最佳实践建议。

2025-07-21 14:40:36 577

原创 Nginx反向代理数据库(代理一层或N层)

项目开发部署中,经常会遇到数据库安装在内网,但是我们的应用服务只能部署在外网,如何实现外网服务访问连接内网数据库呢?本文以MySQL数据库为例,介绍如何通过Nginx配置实现外网访问内网数据库。

2025-07-21 11:29:39 212

原创 Linux 修改文件或文件夹权限(超详细!!!)

在Linux中,我们可以使用chmod命令来对文件或文件夹的权限进行修改。chmod这个命令用于更改文件和目录的访问权限,也就是配置谁可以读取、写入和执行文件(文件夹)。

2025-07-21 09:47:06 224

原创 Docker 安装 emqx

本文介绍了使用Docker部署EMQX开源MQTT消息服务器的完整流程。首先拉取最新镜像并创建持久化目录,通过临时容器复制配置文件并设置权限(777)。随后正式启动容器,映射MQTT协议端口(1883/8883)、HTTP/WebSocket端口(8083/8084)和管理后台端口(18083)。部署后需修改默认管理员密码并开放防火墙端口。最后可通过18083端口访问Web管理界面验证部署结果。关键步骤包括持久化配置、权限设置和端口映射,确保服务稳定运行。

2025-07-21 09:10:32 183

原创 Linux(centos 7.0 64位)安装Docker

采用Linux操作系统,版本为Centos7.0 64位,Docker采用CE版:18.06.0.ce-3。

2025-07-18 17:53:08 881

原创 Http Digest Auth 摘要认证

通俗点来讲,就是客户端首先向服务器发送一次请求,这次的请求为向服务端发起的挑战,如果服务端需要客户端摘要认证,就需要生成一个摘要盘问(Digest Challenge),请求返回为401给用户。用户从响应头中的 WWW-Authenticate 获取到响应的摘要,提取摘要信息,以第一次的摘要信息,来发起第二次正式请求。摘要认证(Digest Authentication)是一个简单的认证机制,最初是为HTTP协议开发的,因为也常叫HTTP摘要,再RFC2617中描述。在Java中进行请求如下。

2025-07-18 17:04:50 202

原创 SnowFlake--雪花算法

分布式系统中如何保证水平分表后ID的全局唯一性?传统自增ID和UUID存在重复或无序问题。雪花算法(SnowFlake)是Twitter开源的分布式ID生成方案,通过时间戳+机器码+序列号组合生成64位有序ID。优点包括:高并发性能(百万/秒)、本地生成不依赖第三方、ID趋势递增。但需注意服务器时钟回拨问题,可通过记录最后时间戳解决。实际应用时可灵活调整各部分比特位分配,如缩短时间戳位数、扩展机器码范围等。该算法已成为互联网公司广泛采用的分布式ID解决方案。

2025-07-18 16:14:44 242 1

空空如也

空空如也

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

TA关注的人

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