如何在 Spring Boot 中使用 P6Spy 拦截 SQL 语句?
P6Spy 是一个用于拦截和记录应用程序和数据库之间的所有 JDBC 操作的开源 Java 库。P6Spy 是无代码侵入的,也就是说,我们无需修改应用程序代码,只需做一些简单的配置,即可使用 P6Spy 这个横在应用程序和 JDBC 驱动之间的「间谍」来捕获所有使用的 SQL 语句和其执行细节。
阅读更多P6Spy 是一个用于拦截和记录应用程序和数据库之间的所有 JDBC 操作的开源 Java 库。P6Spy 是无代码侵入的,也就是说,我们无需修改应用程序代码,只需做一些简单的配置,即可使用 P6Spy 这个横在应用程序和 JDBC 驱动之间的「间谍」来捕获所有使用的 SQL 语句和其执行细节。
阅读更多MapStruct 是一款基于注解的、用于 Java 对象映射的代码生成器。借助 MapStruct,我们做对象转换时,只需按照约定指定映射关系,真正的逐字段映射交给 MapStruct 去做即可,可以省去大量手工代码的编写。而且,MapStruct 是在编译期生成映射代码,若有字段类型不一致的映射,会提前报错,其生成的代码更加安全可靠。再者,MapStruct 生成的代码的执行性能与我们手工编写的代码无异,远优于市面上流行的几款基于反射的映射框架(如 BeanUtils、ModelMapper 等)。
阅读更多Spring Event 是 Spring 框架提供的一个核心组件,其允许服务内部不同模块之间通过观察者模式(发布-订阅模式)进行通信,从而实现模块间的解耦。
即 Spring Event 是一种事件驱动的编程模型,一个模块在做完一件事后,无需直接调用其它模块处理后续逻辑,而是发布一个事件出来,由其它对该事件感兴趣的模块订阅并处理这个事件,事件发布者无需关注订阅者是谁,从而实现模块间的轻松解耦。
阅读更多在 Spring Boot 工程中,若选用的持久化层框架是 JPA,那么要想捕捉所有实体的增删改操作,该怎么实现呢?
下面给一个具体点的需求,然后我们来探讨如何实现:「假设我们要实现一个实体(表)操作监控模块,即捕获 Spring Boot 应用程序中所有实体的变更(包括增、删、改)操作,然后将这些操作记录到一张表中。」
阅读更多今天是日本投降日。80 年前的今天日本宣佈無條件投降,中國人民迎來了抗日戰爭的勝利。
當下的加沙正被以色列進行慘無人道的屠殺,幾萬平名無辜喪生,讓 21 世紀承平日久的人們體會到什麼是人間煉獄。但 80 多年前日本對我們造成的傷害,遠不止於此。
阅读更多朱令鉈中毒案是兇手「鉈」泯滅良知、喪失人性的陷害,也是清華、協和以及辦案機關等多個部門的嚴重失責。一個普通的刑事案件,硬生生被「鉈家」操作成了前無古人的「疑罪從無」。清華案發現場保護不力,讓人家幾進幾出,消滅關鍵證據。協和檢測報告遲遲定位不出特殊元素,定位出來了又三緘其口,這又說明什麼?辦案機關辦事不力,遇阻力即後退,枉為國之要器。
阅读更多在基于 Spring Boot 的业务开发中,我们有时会遇到这样的场景:即定义了一个通用接口,而该接口拥有多个实现类。在调用这些实现类时,我们通常需要编写一个工厂方法,该工厂方法可以根据指定的参数获取到对应的实现类。
那么,提供该工厂方法的类就是一个服务工厂,本文即是探讨如何优雅的编写这个服务工厂。
阅读更多週末和太太、孩子一起去了旅順黃渤海分界線景點。這裏是遼東半島的最南端,也就是正好在我國像雄雞一樣地圖的雞嘴上。
正值伏天,當日天氣非常炎熱,站在山上,涼爽的海風迎面吹來,帶來一絲絲涼意。
也許是山東、河北、遼寧將渤海團團圍住而只剩旅順和蓬萊這個之間的出口的緣故。站在「一山擔兩海」的位置,一眼望去,黃海與渤海的海水竟不相容,一面是深藍色,一面是黃藍色,肉眼即可看出差別,非常的神奇。
阅读更多週末和太太、孩子一起去了燕窩嶺,這是一個臨海的山體公園。當日的天氣晴朗無雲,山林鬱鬱蔥蔥,很好的遮蔽了日頭,穿梭於其中,涼爽的海風吹過來,很是愜意。
燕窩嶺是一個以姻緣爲主題的公園,裏邊有傳統文化中男女由相戀到結婚的整個的過程的介紹,也有各種鳳凰、鴛鴦等喻示男女形象的建築。這裏長長的鐵鏈上,有不少情侶掛上的同心鎖,這裏有海有山,很好的應合了海誓山盟的情境。
阅读更多這次回鄂爾多斯探親,在這邊待了有半個月之久。時隔兩年再次回來,感嘆父母又變老了一些。
這一次回來感觸很多,收穫也很多。陪伴了父母,探望了二舅二妗,見到了姑父,去醫院看了表姐,去學校看了雅涵,去烏海看了玉蘭姨,見到了從南京回來的文豆和媳婦,太太還幫我參加了文豆的婚禮,見到了三舅一家,真的是收穫頗豐。
阅读更多