週末逛泊霞灣與橫山寺

這週末,我、太太和孩子去了泊霞灣與橫山寺。 泊霞灣是第一次去。進入泊霞灣前是一段狹窄的鄉間公路,公路的盡頭就是蔚藍的大海,此種景色非常的治癒。泊霞灣的海邊還有一座燈塔,有人開着一輛復古汽車在旁邊賣咖啡,有網紅以大海爲背景在這裏直播唱歌,還有一些人拿着相機在這裏等待落日。 橫山寺已去過多次。這次去,感受到這裏的景色已有了秋天的氣象,樹葉微微泛黃,氣溫也變得涼爽。人們在這裏走着,聽聽禪樂,喫點素齋,心靈得到了放鬆與清淨。

阅读更多

如何在 Spring Boot 中使用 P6Spy 拦截 SQL 语句?

P6Spy 是一个用于拦截和记录应用程序和数据库之间的所有 JDBC 操作的开源 Java 库。P6Spy 是无代码侵入的,也就是说,我们无需修改应用程序代码,只需做一些简单的配置,即可使用 P6Spy 这个横在应用程序和 JDBC 驱动之间的「间谍」来捕获所有使用的 SQL 语句和其执行细节。

阅读更多

Java 中如何使用 MapStruct 进行对象映射?

MapStruct 是一款基于注解的、用于 Java 对象映射的代码生成器。借助 MapStruct,我们做对象转换时,只需按照约定指定映射关系,真正的逐字段映射交给 MapStruct 去做即可,可以省去大量手工代码的编写。而且,MapStruct 是在编译期生成映射代码,若有字段类型不一致的映射,会提前报错,其生成的代码更加安全可靠。再者,MapStruct 生成的代码的执行性能与我们手工编写的代码无异,远优于市面上流行的几款基于反射的映射框架(如 BeanUtils、ModelMapper 等)。

阅读更多

如何使用 Spring Event 实现内部模块间的轻松解耦?

Spring Event 是 Spring 框架提供的一个核心组件,其允许服务内部不同模块之间通过观察者模式(发布-订阅模式)进行通信,从而实现模块间的解耦。

即 Spring Event 是一种事件驱动的编程模型,一个模块在做完一件事后,无需直接调用其它模块处理后续逻辑,而是发布一个事件出来,由其它对该事件感兴趣的模块订阅并处理这个事件,事件发布者无需关注订阅者是谁,从而实现模块间的轻松解耦。

阅读更多

使用 Spring Data JPA 时如何捕捉实体的增删改操作?

在 Spring Boot 工程中,若选用的持久化层框架是 JPA,那么要想捕捉所有实体的增删改操作,该怎么实现呢?

下面给一个具体点的需求,然后我们来探讨如何实现:「假设我们要实现一个实体(表)操作监控模块,即捕获 Spring Boot 应用程序中所有实体的变更(包括增、删、改)操作,然后将这些操作记录到一张表中。」

阅读更多

對於日本侵華的幾點看法

今天是日本投降日。80 年前的今天日本宣佈無條件投降,中國人民迎來了抗日戰爭的勝利。 當下的加沙正被以色列進行慘無人道的屠殺,幾萬平名無辜喪生,讓 21 世紀承平日久的人們體會到什麼是人間煉獄。但 80 多年前日本對我們造成的傷害,遠不止於此。

阅读更多