JAVA 二月 03, 2024

基于 MyBatis 拦截器机制实现一个敏感数据处理组件

文章字数 22k 阅读约需 20 mins.

MyBatis 作为一个流行的持久层框架,提供了拦截器 Interceptor 机制,允许开发者在 SQL 执行过程中插入自定义逻辑。本文将深入探讨 MyBatis 拦截器的用法和使用场景,并以处理敏...

查看全文

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() 被调用引起的,但...

查看全文

JAVA 十月 07, 2023

【转】查看依赖树的利器

文章字数 1.8k 阅读约需 2 mins.

原文地址:https://wyiyi.github.io/amber/2023/10/01/Dependency%20Tree/

依赖树(Dependency Tree)工具,可以查看和分析项目的依赖关系。

本文将介绍 maven 和 gradle 两种构建如何查看依赖树。

  1. 命令行工具来查看项目的依赖树,执行命令:

     mvn dependency:tree
     gradle dependencies
  2. 对于大型项目,可以将输出结果保存到文件中:

     mvn dependency:tree >...
查看全文

JAVA 八月 13, 2023

Thymeleaf —— 简化 Java Web 开发的强大模板引擎

文章字数 15k 阅读约需 14 mins.

原文地址:https://wyiyi.github.io/amber/2023/08/01/thymeleaf/

Thymeleaf 是一种用于在服务器端和客户端之间渲染 HTML、XML、JavaScript、CSS 和文本的 Java 模板引擎。

模板引擎在 Web 领域的主要作用:让网站实现界面和数据分离,这样大大提高了开发效率,提供自然、灵活的模板处理功能,让代码重用更加容易。

查看全文

JAVA 六月 24, 2023

【转】CPU飙升排查

文章字数 2.1k 阅读约需 2 mins.

原文地址:https://softleadergy.github.io/CPU%E9%A3%99%E5%8D%87%E6%8E%92%E6%9F%A5/

线上资源cpu飙升是我们工作中常见的问题,一篇文章搞定排查方法

现在我有两个接口,代码如下

@RestController
public class CPUCheck {
  @RequestMapping("/hello")
  public String helloWorld(){
      return "hello World...
查看全文

JAVA 五月 28, 2023

用 IDEA 写更整洁的 Java 代码

文章字数 5.1k 阅读约需 5 mins.

新版本 IDEA 支持设置保存时的动作,在 Preferences 下的 Tools | Actions on Save 中:

支持如下动作:

  • Reformat code: 根据当前代码风格设置执行格式化代码动作,可设置生效的文件类型及范围(整个文件、变更部分)
  • Optimize imports: 根据当前代码风格设置执行移除无用 import 及重新组织 import,可设置生效的文件类型
  • Rearrange code: 根据当前代码风格设置执行代码重排序动作
  • Run code cleanup...
查看全文

JAVA 十月 15, 2022

黑客松云原生赛道初赛程序设计分享

文章字数 15k 阅读约需 13 mins.

2Core / 4GB 的总资源限制内,在容器中运行一个基于文本日志文件的统计分析程序,统计发表评论最多的前10位用户,并按顺序返回用户名、该用户的评论次数、该用户不重复的评论数量以及最近发表评论的时间

  1. 按照评论次数由多到少进行排序
  2. 当用户评论次数相同时,将内容不重复的评论数量较多的用户排在前面
  3. 当“用户评论次数”与“不重复的评论次数”均相同时,以“最近发表评论的时间”排序,内容较新的用户排在前面

正式比赛的数据量级为1000万(可能会有零头,但不低于1000万,不超过1001万),数据文...

查看全文

JAVA 十月 09, 2022

MapStruct - Java bean 映射,简单的方法!

文章字数 14k 阅读约需 13 mins.

应用程序通常需要在不同的对象模型(例如实体和 DTO)之间进行映射,如:在前后台传输过程中,持久层定义的实体类经常需要映射到其它的对象模型进行相互转换。

MapStruct 是一个代码生成器,在不同的对象模型(例如 实体 和 DTO)之间进行映射,它基于约定优于配置的方法,极大地简化了 Java bean 类型之间的映射实现。

MapStruct 是一个 Java 注释处理器,用于生成类型安全、高性能和无依赖关系的 bean 映射代码。

与其他映射框架相比,MapStruct 在编译时生成 bean...

查看全文
加载更多
0%