JAVA中对象常见的几种方法比较
目录引言基本元素比较1. 基本数据类型:直接用==比较值2. 包装类:分两种情况3. String 类型:核心看==和equals()的区别基本元素比较的核心建议总结对象的比较1. 覆写基类Object的equals()+hashCode()核心用途核心规则实现要点示例适用场景2. 基于Comparable接口的比较核心用途核心方法实现要点示例适用场景3. 基于Comparat ...
使用SpringBoot+MyBatis实现数据库字段级加密
目录为什么需要字段级加密?技术选型:为什么选择Spring Boot + MyBatis?Spring Boot的优势MyBatis的优势核心实现思路1. 加密注解设计2. 实体类标记3. 加密工具类4. MyBatis拦截器实现实际应用场景1. 用户信息保护2. 金融数据安全3. 医疗数据保护4. 企业数据安全安全性考虑总结为什么需要字段级加密?
在当今数据驱动的时 ...
通过mybatis-plus进行数据库字段加解密方式
目录1、编写handler2、编写加解密util3、实体及字段配置4、自定义mapper语句总结1、编写handler
@MappedJdbcTypes(JdbcType.VARCHAR)
public class EncryptHandler extends BaseTypeHandler<String> {
@Override
public void setNonNullParameter(PreparedStatement preparedStatement, int i, String parameter, ...
SpringBoot整合Activiti的项目中实现抄送功能
目录1、实现思路2、在Spring Boot中集成Activiti2.1、设计抄送表2.2、抄送实体类2.3、实现抄送服务3、前端集成3.1、抄送组件3.2、抄送列表页面4、高级功能扩展4.1、邮件通知集成4.2、消息推送集成(WebSocket)4.3、 抄送规则配置4.4、 应用配置文件4.5、 流程定义中的抄送配置5、总结1、实现思路
在Activiti工作 ...
JVM 堆内存分代
今天我们一起来聊一聊 JVM 堆内存。
Java Heap(堆内存)由 Young Generation(新生代,约占 1/3 )和 Old Generation(老年代,约占 2/3 )组成。
Young Generation 又由 Eden Space(伊甸园区,占新生代 80% )、Survivor Space 0(幸存者区0,占新生代 10% )和 Survivor Space 1(幸存者区 ...
SpringCloud Gateway的使用 + Nacos动态路由实践指南
目录一、简介1、什么是gateway?2、没有gateway的弊端3、gateway解决了什么?4、gateway和zuul的区别5、gateway核心概念6、gateway是如何工作的二、构建一个springcloud Gateway服务1、新建一个微服务1.1、新建gateway子模块1.2、引入依赖2、配置服务2.1、创建启动类2.2、创建application.yml配置文件2.3、启动并访问Gatewa ...
MyBatis-Plus 复杂查询Lambda+Wrapper 多条件功能实现
目录Java 数据 01:MyBatis-Plus 复杂查询(Lambda+Wrapper 多条件)一、MyBatis-Plus 简介与核心概念1.1 什么是 MyBatis-Plus?1.2 核心组件二、Lambda + Wrapper 基础入门2.1 准备工作2.2 基本查询示例三、复杂查询条件详解3.1 基础比较操作符3.2 逻辑操作符3.3 聚合函数与分组查询3.4 排序与分页四、高级特性与最佳实践4 ...
Java虚拟机(JVM)的自带工具使用详解
目录jpsjstat 的各种命令jinfojmapjhatjstack总结jps
JVM进程状态工具,用于查看进程的基本信息。JPS是Java Virtual Machine Process Status Tool的缩写,它是Java提供的一个用于查看所有Java进程的命令行工具。
jps: 默认情况下,不带任何参数运行jps将显示所有正在运行的Java进程的PID和主类名。jps -l: 使用-l选项可以显 ...
Java JAR包反编译工具实战指南与应用场景
目录1. JAR包反编译工具概述与应用场景1.1 反编译工具的核心定义与技术本质1.2 典型应用场景与行业实践2. jd-gui.exe 工具介绍与运行环境要求2.1 jd-gui 的核心功能与架构设计2.1.1 图形化界面下的字节码解析机制2.1.2 支持的Java版本范围及兼容性说明2.1.3 内置反编译引擎的工作流程解析2.2 运行环境的技术要求与配置建议2 ...
MyBatis插件机制的使用及说明
目录拦截器介绍及配置源码分析Plugin.wrap方法总结MyBatis插件机制是该框架提供的一种灵活扩展方式,允许开发者在不修改框架源代码的情况下对MyBatis的功能进行定制和增强。
这种机制主要通过拦截器(Interceptor)实现,使得开发者可以拦截和修改MyBatis在执行SQL语句过程中的行为。
MyBatis允许使用插件来拦截的方法调用 ...
SpringBoot整合knife4j3.0.3实现过程
目录配置Swagger使用使用接口字段说明Knife4j 增强功能总结在Spring Boot项目中,我们可以通过引入Swagger依赖,然后在Controller中加入相应注解,即可生成API文档。Swagger提供了一个Web界面,在这个界面上可以查看所有API的信息,包括请求方法、参数、响应码等。
Knife4j是Swagger-UI的增强版,它是在Swagger-UI的基础上 ...
SpringBoot整合Kafka实现高可用消息队列集群详解
目录一、Kafka简介1.1 什么是Kafka1.2 Kafka核心概念二、搭建Kafka高可用集群三、SpringBoot整合Kafka详细步骤3.1 创建SpringBoot项目3.2 配置文件3.3 配置类3.4 消息实体类3.5 生产者服务3.6 消费者服务3.7 消费者容器工厂配置3.8 监控和管理端点3.9 异常处理和重试机制3.10 健康检查四、高可用性保障措施4.1 集群配置建议 ...
Java动态数组的实现过程
目录1. 基础结构设计2. 核心功能实现2.1 基本操作获取元素个数和容量获取和设置元素2.2 添加元素2.3 插入元素2.4 删除元素2.5 扩容机制3. 性能分析时间复杂度空间复杂度4. 实现特点5. 改进建议总结在本文中,我们将深入探讨如何实现一个简单的动态数组(类似于Java中的ArrayList)。通过这个实现,我们可以更好地理解动态数 ...
Java中实现事务的几种方法代码示例
目录前言1. JDBC 原生事务2. Spring 编程式事务3. Spring 声明式事务(注解方式)4. EJB 事务5. 分布式事务总结前言
事务是数据库操作中的重要概念,它确保了一组操作要么全部成功,要么全部失败,从而保证数据的一致性和完整性。在 Java 中,我们有多种方式来实现事务管理。本文将详细介绍几种常用的事务实现方法,并提供 ...
10347_基于Springboot的新疆旅游管理系统
1、项目包含
项目源码、项目文档、数据库脚本、软件工具等资料;
带你从零开始部署运行本套系统。绿-泡-泡:QianXun-Software
2、项目介绍
随着社会经济水平不断地提高,人们的生活条件也越来越好,除了注重日常的吃穿用度之外,越来越多的人开始去到别的城市旅游,享受旅游带来的美好,因此旅游业也逐步开始发展。此外,互 ...
Java final关键字修饰类、方法、变量的不同作用及实战指南
目录一、引言二、核心知识点解析1. 从 final 变量开始:为什么新手总搞混 “不可变”?2. final 方法:重写的坑比你想的深3. final 类:什么时候该把类封死?三、实战代码示例 1:基础用法(Java 17+)示例 2:进阶场景 - final 在并发中的应用(Java 17+)示例 3:踩坑示范 - final 引用类型修改内容(Java 17+ ...
Java程序中十种常见报错及解决方案(附示例代码)
目录一、空指针异常(NullPointerException)报错内容原因分析解决方案二、类型转换异常(ClassCastException)报错内容原因分析解决方案三、数组越界异常(ArrayIndexOutOfBoundsException)报错内容原因分析解决方案四、字符串索引越界异常(StringIndexOutOfBoundsException)报错内容原因分析解决方案五、数字格式异常 ...
mybatis plus数据权限插件在项目中的使用方式
目录前言数据权限插件使用DataPermissionHandler自定义的dataScopeFilter方法CCJSqlParserManager类解析总结前言
平时开发中遇到根据当前用户的角色,只能查看数据权限范围的数据需求。实现方案有两种,一是在开发初期就做好判断,但如果这个需求是中途加的,或不希望每个接口都加一遍,就可以方案二加拦截器的方式。在myba ...
Java中String、StringBuffer和StringBuilder底层实现深入剖析
目录前言1. 全面对比表2. 底层实现深入剖析3. 性能对比实测(循环 10 万次拼接)4. 编译器优化小秘密5. 选择指南(实战总结)6. 常见误区澄清总结前言
这三个类都是 java.lang 包下的字符串处理类,但它们在设计理念、内部实现和适用场景上存在显著差异。
1. 全面对比表
比较维度StringStringBufferStringBuilder可变性不可 ...
SpringBoot从Service层获取request.getHeader()的几种方式
目录1.通过方法参数传递(推荐)2.使用RequestContextHolder(常用)3.通过ThreadLocal持有Request4.注入HttpServletRequest5.封装Header信息到DTO6.使用AOP获取最佳实践建议:在Spring Boot中,有几种方式可以从Service层获取request.getHeader():
1.通过方法参数传递(推荐)
Service接口:
@Service
public class UserS ...