JAVA 七月 28, 2024

Maven 实用技巧

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

Maven Wrapper 借鉴了 Gradle Wrapper 的思想,可以在工程源码中提交 Wrapper 的脚本和配置,之后在工程目录中使用 mvnwmvnw.cmd 命令代替 mvn 命...

查看全文

JAVA 七月 28, 2024

Maven 实用技巧

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

Maven Wrapper 借鉴了 Gradle Wrapper 的思想,可以在工程源码中提交 Wrapper 的脚本和配置,之后在工程目录中使用 mvnwmvnw.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 官网中 Interceptor 的介绍:

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

查看全文

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...
查看全文
加载更多
0%