Mybatis-Plus中@TableField失效的解决方案
目录问题描述原因分析解决方法总结问题描述
mybatisplus默认开启驼峰命名,所以一般不需要使用@TableField注解,但是我在项目中就算加上了该注解,在日志中的select语句中也显示是departmentId。
原因分析
默认情况下Mybatis-Plus会根据@TableFiled生成别名,
而自己指定了QueryWrapper的select属性后就仅仅是属性值而没有 ...
MyBatis映射器模块最佳实践
目录一、MyBatis整体架构与映射器模块1.1 映射器模块的核心职责1.2 为什么需要Mapper?1.3 Mapper的使用方式二、Mapper接口架构2.1 Mapper接口定义2.2 Mapper接口特点2.3 MapperRegistry注册中心三、SQL语句映射3.1 XML配置方式3.2 注解配置方式3.3 混合配置方式四、动态代理实现4.1 MapperProxyFactory代理工厂4.2 MapperP ...
SpringMvc(Interceptor,Filter)实现方案
目录1. 过滤器 (Filter)实现方案一:通过@WebFilter注解(Servlet 原生)实现方案二:通过FilterRegistrationBean(Spring Boot统一管理生命周期 推荐)2. 拦截器 (Interceptor)需要继承/实现的类注册拦截器3. 核心区别对比表简单总结:为什么跨域请求要通过过滤器实现?1. 预检请求(OPTIONS)的拦路虎2. 为什么选择 ...
springboot修改端口号的实现方式
目录一、在 application.properties二、在 application.yml或在 application.yaml文件中修改三、总结一、在 application.properties
在properties文件添加server.port=端口号
示例:将默认端口号修改为8888
.在resource文件下创建一个application.properties文件
二、在 application.yml或在 application.yaml文件中修改
...
JAVA搭建虚拟机运行环境的流程分析
目录在Windows上使用VMware搭建Ubuntu虚拟机的详细教程一、环境准备二、VMware安装与配置三、Ubuntu安装流程四、安装后优化五、注意事项六、版本推荐在Windows上使用VMware搭建Ubuntu虚拟机的详细教程
一、环境准备
硬件要求
CPU:支持虚拟化技术(Intel VT-x / AMD-V)内存:≥8GB(推荐预留4GB给虚拟机)磁盘空间:≥ ...
SpringBoot通过URL地址获取文件的多种方式
目录1. 使用 Java 原生的 URL 和 HttpURLConnection2. 使用 Spring 的 RestTemplate3. 使用 RestTemplate 配置类4. 使用 WebClient(响应式,Spring 5+)5. 完整的 Controller 示例6. 添加依赖(Maven)7. 异常处理和优化建议使用示例注意事项在Spring Boot中,可以通过URL地址获取文件有多种方式。以下是几种常见的方法:
...
java Arrays.asList 返回什么与普通 ArrayList 区别介绍
目录核心结论详细区别与解释代码示例为什么会这样设计?如何得到一个真正可变的ArrayList?核心结论
它返回什么? Arrays.asList() 返回一个由指定数组支持的、固定大小的 List 视图。有区别吗? 有巨大区别。它返回的不是我们常用的 java.util.ArrayList,而是一个内部自定义的、行为受限的类。
详细区别与解释
我们可以通 ...
Java标准库中Thread类的基本用法总结大全
目录前言Thread 类的基本用法有:一、线程创建方式1:继承Thread类,重写run方法!方式2:实现 Runnable, 重写 run方法方式3: 继承Thread, 重写run, 使用匿名内部类方式4: 实现Runnable, 重写run, 使用匿名内部类方式5: 使用lambda表达式二、线程中断 - interrupt()三、线程等待 - join()四、线程休眠 - sleep()五、获取线程 ...
Java CAS原理和用法总结
目录一、CAS 原理1. 核心思想2. 操作模型3. 工作流程4. 优点与缺点二、Java 中的 CAS 用法1. 主要的原子类2. 核心方法3. 代码示例总结一、CAS 原理
1. 核心思想
CAS 是一种无锁的原子操作机制。它的核心思想是:我认为值应该是A,如果是,那我就把它改成B;如果不是A(说明被别人改过了),那我就不修改,然后可以选择重试 ...
浅析Spring Validation参数校验的实现原理与进阶用法
目录1、简单使用引入依赖requestBody参数校验requestParam/PathVariable参数校验统一异常处理2、进阶使用分组校验嵌套校验集合校验自定义校验编程式校验快速失败(Fail Fast)@Valid和@Validated区别3、实现原理requestBody参数校验实现原理方法级别的参数校验实现原理摘要:本文首先阐述了JSR303规范与Hibernate Validator的 ...
springboot devtools 热重启配置方法
加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 仅在开发环境生效 -->
</dependency>
加build配置:
<!-- 确保 Maven 插件开启 fork 模式(已存在可忽略) -->
<build>
<plugins>
...
Java Thread.join()方法使用详细解析
目录前言一、核心定位二、重载方法关键说明三、工作原理1. 核心逻辑2. 与Thread.sleep()的核心区别四、实战示例示例 1:无参join()- 主线程等待子线程完全执行运行结果(顺序固定)示例 2:带超时join(long millis)- 主线程等待超时后继续执行运行结果(主线程超时后提前执行)示例 3:多个线程join()- 串行等待 vs 并行等 ...
SPI机制:服务扩展的核心技术
为什么需要SPI机制
SPI和API的区别是什么
SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实现此接口,这样做就可以方便的进行扩展,类似于插件机制,这是SPI出现的需求背景。
SPI : “接口”位于“ ...
Java利用Spire.PDF高效实现将PDF转换为PPT的完整指南
目录准备工作单文件转换:将 PDF 转换为 PPT代码示例代码解析批量转换:将多个 PDF 文件批量转换为 PPT代码示例代码解析注意事项总结在日常工作中,我们常常需要将 PDF 文件转换为 PPT 文件,尤其是在需要展示报告、项目文件、文档或其他重要信息时。PDF 格式通常用于文档存档,但在需要制作演示文稿时,PPT 格式更为灵活。 ...
解决Java中线程安全问题
目录线程安全问题的核心原因线程安全问题的解决方案方案1:避免共享可变资源(优先推荐)方案2:同步/加锁(控制并发访问)互斥同步(阻塞同步):这是最常见的方案,通过加锁来保证同一时刻只有一个线程操作资源。ReentrantLock(显式锁):比synchronized灵活(可中断、可超时、公平锁),需手动释放锁(必须在finally中) ...
SpringBoot实现网络限速的方法详解
目录概述为什么需要带宽限速核心原理:令牌桶算法技术设计整体流程为什么选择 HandlerInterceptor核心组件职责多维度限速实现全局限速(GLOBAL)API 维度限速(API)用户维度限速(USER)IP 维度限速(IP)关键代码实现1. 令牌桶核心算法2. 响应包装器3. 拦截器获取包装响应4. Controller 获取限速响应参数调优指南桶容量选 ...
zxing解析二维码抛出com.google.zxing.NotFoundException的解决过程
目录1.二维码所有bit都是02.乱码3.优化精度4.开启PURE_BARCODE模式。总结1.二维码所有bit都是0
分析了一下,发现我在生成二维码的时候白色像素填充使用的是透明色,这样在显示的时候因为背景是白色,所以看上去和用手机扫都没有问题,但是自己代码识别的时候就会把透明色识别为黑色,这样就导致整个二维码图片全是黑色像素 ...
MyBatis-Plus中@TableField和@TableId说明
目录一、@TableField(value = “表字段”)二、@TableField(select = false)三、@TableField(exist = false)四、@TableId(type = IdType.AUTO)补充总结一、@TableField(value = “表字段”)
如果表的字段与pojo类的属性值对应不上,就像表字段为user_name,但是属性的为uName时,在查询所有中就会报错, ...
MyBatis-Plus指定字段的查询和排除过程
目录单个字段查询多个字段查询单个字段排除多个字段排除实体类使用注解排除总结单个字段查询
testService.list(Wrappers.<Test>lambdaQuery().select(Test::getId));
多个字段查询
testService.list(Wrappers.<Test>lambdaQuery().select(Test::getId, Test::getAge));
单个字段排除
// 对应实体类字段
testServi ...
Java开发中StepBuilder模式详解
目录一、什么是Step Builder模式1.1 传统Builder模式的局限性1.2 Step Builder模式的优势二、Step Builder基础实现2.1 简单示例:用户注册2.2 工作原理分析三、实战案例:HTTP请求构建器3.1 场景分析3.2 完整实现四、开源框架中的Step Builder应用4.1 OkHttp Request Builder分析4.2 Spring RestTemplate增强五、高级技巧与 ...