- 博客(34)
- 收藏
- 关注
原创 mybatisplus TypeHandler使用记录
MyBatis-Plus的@TableName(autoResultMap=true)注解能自动生成ResultMap映射配置,解决类型转换不生效问题。该功能适用于JSON字段、枚举类型和自定义类型处理器的场景,无需手动配置ResultMap即可自动应用类型处理器。使用时需配合@TableField(typeHandler=...)注解,主要针对复杂类型字段,查询方法需指定ResultMap或使用Wrapper查询。这一特性简化了复杂字段映射配置,特别适合处理JSON、枚举等非基本类型字段的转换问题。
2025-11-21 11:37:42
148
原创 Mybatisplus使用异常记录
摘要:本文记录了MyBatis-Plus使用中的两个常见问题及解决方案。问题1涉及MybatisConfiguration$StrictMap$Ambiguity类型转换异常,可通过将MyBatis-Plus从3.4.3.1升级至3.4.3.2修复;问题2是多模块项目中出现的"Invalid bound statement"错误,需要在父工程pom.xml中配置资源路径,包含src/main/java目录下的*.xml文件。这两个方案分别解决了版本兼容性和多模块资源加载的问题。
2025-11-14 16:30:54
272
原创 FOR UPDATE与索引
记住这个核心原则:FOR UPDATE的锁粒度直接依赖于查询能否通过索引快速、精确地定位数据。追求行锁:确保你的WHERE条件使用主键或唯一索引。警惕范围锁:使用普通索引时,要意识到可能会锁定一个范围(间隙锁)。避免表锁:绝不在未建立索引的字段上使用FOR UPDATE。在实际开发中,务必在测试环境中验证加锁行为,并使用等命令观察锁信息,这样才能写出正确、高效的高并发代码。
2025-10-16 14:05:53
340
原创 Guava布隆过滤器
映射到位数组位置:将计算出的正数 对位数组的长度 m取模((combinedHash & Long.MAX_VALUE) % bitSize),最终得到该次哈希计算所对应的位数组中的具体位置(索引)。Guava 采用 “双重哈希”(Double Hashing) 技术来模拟多个哈希函数的行为,而不是使用 k 个不同的哈希算法。确定性:对于同一个输入对象,每次计算得到的 hash1和 hash2是固定的,因此模拟出的 k 个索引位置也是完全固定的,符合布隆过滤器的要求。
2025-10-14 15:27:08
270
原创 FactoryBean 的作用
getBean(“car”) 返回的是什么?返回的是 CarFactoryBean 的 getObject() 方法创建的 Car 对象。如何获取 CarFactoryBean 实例本身?使用 getBean(“&car”)。为什么需要 FactoryBean?FactoryBean 提供了一种灵活的方式来创建复杂对象,尤其是当对象的创建过程需要自定义逻辑时(例如动态参数、复杂初始化等)。
2025-09-16 17:42:23
431
原创 Hutool中HttpUtil异步请求失败
异步HTTP请求方法分析摘要(137字): 该方法executeAsync()声称提供异步HTTP请求功能,但实际测试发现其仍会阻塞线程。方法说明文档指出其特点在于延迟读取响应内容而非真正的异步执行,这可能导致对"异步"功能的误解。从测试结果来看,该方法并未实现非阻塞的异步请求模式。建议开发者若需真正的异步HTTP请求,应改用Java8的CompletableFuture等标准异步处理机制。该工具方法名与实现存在差异,使用时需注意其实际行为特征。
2025-09-04 20:10:41
227
原创 Springboot3.2以上版本Property or field ‘type‘ cannot be found on null
EL1007E: Property or field ‘type’ cannot be found on null 反射无法获取字段名绑定失败。对应模块的maven compiler 添加以下任意一种。要在对应子模块添加,父模块不生效;true 好像不生效。
2024-12-24 20:43:13
296
原创 nacos自动刷新
对于被管理的每一个配置文件,都会通过 配置仓库容器模块、扫描模块、下载模块、watch模块 进行配置获取至配置仓库里。当配置中心的配置被更新时,配置文件会被下载至实例本地,ReloadConfigurationMonitor即会监控到此行为,并且通知 ReloadingPropertyPlaceholderConfigurer 对相关的bean类进行值更新。分析: disconf配置优先解析,spring解析时使用默认值替换key后,无法再使用原本的key去解析nacos的配置。
2024-12-24 20:35:12
459
原创 spring项目mybati开启sql控制台打印
spring 4.0mybatis3.3要启用 MyBatis SQL 的 stdout 日志,需要在应用的 mybatis-config 文件中添加日志设置:配置完成后,正常打印sql效果如下:如需打印到日志文件,需指定日志框架:为什么会想要看日志?在对老项目做改动时,在Model类中新增了一个字段,新增字段后添加查询条件就无法查询出数据,不添加查询条件就有数据;所以想看一下添加查询后的sql语句;最后排查的结果是新添的字段使用的是int类型,而int类型在对象初始化时会赋值初始值0;导致
2024-11-21 14:22:23
626
原创 服务限流步骤
如果服务正常,但响应504/502可能达到了外层路由(apisix)瓶颈;观察请求量骤增的接口,识别如果为单一请求ip,优先封禁;限流后观察服务的请求量是否下降,下降后再进行拨测;进行接口限流梯度下调;观察平时接口请求峰值,配置告警阈值;限流的频率和告警的频率保持一致(s)
2024-10-23 16:15:47
127
原创 java-agent
基于com.sun.tools.attach.VirtualMachine工具的agent就是普通的java程序,通过VirtualMachine指定agent路径与目标程序进程id织入;基于premain实现的javaAgent可以在服务启动时使用 -javaagent:D:/agent-SNAPSHOT.jar 启动。
2024-10-23 14:57:17
206
原创 使用apache FileUtils.getTempDirectoryPath()在win下结尾有·/·但在centos下无·/·
使用apache FileUtils.getTempDirectoryPath()在win下结尾有·/·但在centos下无·/·
2024-10-23 14:55:51
152
原创 springboot切换MongoDB多数据源
集成步骤配置多数据源;多数据源注册为bean,并放入map;创建自定义注解,参数为所需数据源名称,对象为访问MongoDB的Api;AOP切面,从注解中获取数据源名称,从map中取出数据源并放置在线程上下文对象中;自定义DynamicMongoTemplate继承MongoTemplate,重写doGetDatabase方法,从上下文中取出数据源并返回;
2024-09-18 20:09:56
433
原创 springmvc全局异常处理-BindingResult
Valid @Validatd 注解均可使用,可以注解在方法形参与成员变量上,但效果有细微差异;
2023-06-20 20:39:36
472
原创 @MapperScan( basepackages ={},markerInterface = .class) basepackages失效
mybatisplus异常
2023-05-25 19:38:46
1993
1
原创 Lombok踩坑
关于javabean命名第二个字母大写springmvc不能正常映射的解释https://www.jianshu.com/p/bef7b73e5062
2022-01-13 10:09:42
133
转载 【问题解决]HTTPCLIENT请求返回状态码返回307 详细解决方式
首先大家可以先了解下http3XX状态码到底是什么含义,楼主看了好几篇博文 就这篇感觉比较通俗易懂点 ,想了解的点http状态码解释。问题出现原因可能跟httpclient jar包版本有关联 。可项目已经到达后期,现在更改jar包版本不是很现实,固寻找解决方案。我们看完博文知道了3XX的状态码是需要 (重定向发送请求的状态码) ,什么意思呢? 就是我们其实请求到了对方服务器,可是http返回状态码3XX 需要我们重定向发起请求 。那么重定向发送给谁 ,发送什么东西呢。楼主把解决问题的代码贴出来首先第
2021-09-28 19:44:34
10716
1
原创 ElasticSearch入门
https://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
2021-09-08 19:33:24
113
原创 centos各版本下载
centos各版本下载http://mirror.nsc.liu.se/centos-store/6.8/isos/x86_64/
2021-05-10 10:18:59
116
转载 rabbitmq笔记
笔记centos8安装RabbitMQ一、安装erlang添加仓库curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bashDetected operating system as centos/8.安装erlangdnf install erlang二、导入密钥rpm --import https://github.com/rabbitmq/signing-k
2021-03-19 14:50:29
192
原创 Kotlin学习---基础篇(1)
Kotlin环境配置编写第一个Kotlin程序环境配置Kotlin可以基于jdk开发,使用eclipse与IDEA都能进行开发。使用eclipse开发需要手动下载Kotlin插件,IDEA自带有Kotlin插件。编写第一个Kotlin程序这里使用IDEA开发,就不赘言了,直接贴图:这样就完成了我的第一个Kotlin程序。总的来说,第一次接触Kotlin,main方法给我的感觉类似于Java的简写。...
2020-07-13 17:49:46
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅