「 JAVA 」 七月 28, 2024
Maven 实用技巧
文章字数 15k 阅读约需 13 mins.
Maven Wrapper 借鉴了 Gradle Wrapper 的思想,可以在工程源码中提交 Wrapper 的脚本和配置,之后在工程目录中使用 mvnw
或 mvnw.cmd
命令代替 mvn
命令,从而保证了各个开发及持续集成环境在构建时使用的 Maven 版本是一致的。
Maven Wrapper 最主要的是下面三个文件,可以使用 mvn wrapper:wrapper -Dtype=only-script
(或 -Dtype=script
) 命令生成,也可直接从其他工程复制:
├── ....
查看全文
「 JAVA 」 七月 07, 2024
【转】Java 8 In Action Lambda
文章字数 5.6k 阅读约需 5 mins.
原文地址:https://wyiyi.github.io/amber/
在优化代码的过程中,通过使用Java 8 lambda
表达式,减少代码量,提高代码可读性。
Lambda 表达式可以理解为一种匿名函数,它没有名称,但有参数列表、函数体、返回类型,并且可能还有一个可能抛出的异常列表。Lambda 表达式可以作为参数传递给方法,也可以存储在变量中。与匿名内部类相比,Lambda 表达式更加简洁。
从一个例子入手:写一个比较苹果的重量的逻辑:
- 传统方式:
Comparator<Apple...
查看全文
「 SPRING 」 四月 27, 2024
【译】如何在 Spring 中将 @RequestParam 绑定到对象
文章字数 8.1k 阅读约需 7 mins.
你的请求映射方法中是否有多个用 @RequestParam
注解的参数?是否感觉它们影响了易读性?
当请求只有一两个入参时,这个注解看起来非常直观,但是当参数列表变长时,你可能会感到不知所措。
你不能在对象内部使用 @RequestParam
注解,但这并不意味着你没有其他解决方案。在这篇文章中,我将向你展示 如何在 Spring 应用中将多个请求...
「 JAVA 」 二月 03, 2024
基于 MyBatis 拦截器机制实现一个敏感数据处理组件
文章字数 22k 阅读约需 20 mins.
MyBatis
作为一个流行的持久层框架,提供了拦截器 Interceptor
机制,允许开发者在 SQL
执行过程中插入自定义逻辑。本文将深入探讨 MyBatis
拦截器的用法和使用场景,并以处理敏感数据场景为例实现了一个自定义拦截器。
查看全文MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
- Executor (update, query, flushStatements...
「 JAVA 」 十二月 24, 2023
离线环境下 Maven 编译打包
文章字数 2.8k 阅读约需 3 mins.
某些离线场景下我们可能无法连接 Maven 中央库或其他内网私服,又想通过 Maven 对源码进行编译打包。
本文给出了在离线环境下使用 Maven 编译打包的方案。
假设目标环境已经安装好了 JDK 和 Maven,并且将要编译的源码工程 demo-project
放置在了 /maven-offline/build
路径下。
先在联网环境成功执行一次编译,保证使用的 Maven 本地缓存仓库(默认路径 ~/.m2/repository
)中包含了编译所需的依赖。
将本地缓存仓库目录 repository...
「 JAVA 」 十二月 03, 2023
MyBatis-Plus 中的 IService 和 BaseMapper
文章字数 5.3k 阅读约需 5 mins.
原文地址:https://wyiyi.github.io/amber/2023/12/01/mybatis-plus/
MyBatis-Plus 作为一个优秀的 ORM 框架,致力于简化和提高 Java 应用程序对数据库访问的效率。
在使用的过程中,发现 MyBatis-Plus 提供了 BaseMapper 和 IService 两个核心接口,但有些相似之处:它们如何使用及使用场景分别是什么?
BaseMapper 接口是 MyBatis-Plus 提供的通用 Mapper 接口,它继承自...
查看全文「 JAVA 」 十一月 19, 2023
【转】由 System.gc() 频繁引起 Full GC 的问题排查
文章字数 4.8k 阅读约需 4 mins.
原文地址:https://mp.weixin.qq.com/s/IHMHP9b-k0XwKPE1KjpLoQ
早上服务频繁出现 Full GC 报警(由于昨晚下掉了 -XX:+DisableExplicitGC
参数,其实会有 Full GC 产生已经在意料之中,但属实没想到会触发的这么频繁),
这里 JVM 总共运行了 4531.278 s,可以看到差不多半分钟一次 Full GC,单次 Full GC 大概耗时 1.5s。
根据经验可以判断出是由于 System.gc()
被调用引起的,但...