原创 SpringBoot整合atomikos實現跨庫事務

背景 框架之前完成了多數據源的動態切換及事務的處理,想更近一步提供一個簡單的跨庫事務處理功能,經過網上的搜索調研,大致有XA事務/SEGA事務/TCC事務等方案,因爲業務主要涉及政府及企業且併發量不大,所以採用XA事務,雖然性能有所損失,但

原创 SpringBoot集成mybatis攔截器修改表名

背景 公司的框架是基於mysql5.7開發的,最近有一個應用項目部署在linux系統上,使用的是mysql8.0,安裝時未開啓大小寫敏感忽略,客戶又不允許重裝mysql環境,導致一些框架代碼和業務代碼中表名使用大寫的地方會出現表名找不不到的

原创 SpringBoot集成消息隊列

背景 最近在對公司開發框架進行優化,框架內涉及到多處入庫的日誌記錄,例如登錄日誌/操作日誌/訪問日誌/業務執行日誌,集成在業務代碼中耦合度較高且佔用業務操作執行時間,所以準備集成相關消息隊列進行代碼解耦 方案規劃 現有的成熟消息隊列組件非常

原创 SpringBoot集成knife4j

前言 項目api編寫有文檔但是調試麻煩,需要藉助postman/apipost等第三方工具,需要在開發框架中內置接口管理及調試功能增加開發便捷性 pom配置 說明,框架使用springboot版本爲2.0.0.RELEASE

原创 SpringBoot異步任務獲取HttpServletRequest

前言 在使用框架日常開發中需要在controller中進行一些異步操作減少請求時間,但是發現在使用@Anysc註解後會出現Request對象無法獲取的情況,本文就此情況給出完整的解決方案 原因分析 @Anysc註解會開啓一個新的線程,主線

原创 SpringBoot自定義maven-plugin插件整合asm代碼插樁

背景 公司開發框架增加了web系統license授權證書校驗模塊,實行一臺機器一個授權證書,初步方案是增加攔截器針對全局請求進行攔截校驗,評估後認爲校驗方式單一,應該增加重要工具類,業務service實現中每個方法的進行校驗,因爲涉及代碼量

原创 SpringBoot自定義classloader加密保護class文件

背景 最近針對公司框架進行關鍵業務代碼進行加密處理,防止通過jd-gui等反編譯工具能夠輕鬆還原工程代碼,相關混淆方案配置使用比較複雜且針對springboot項目問題較多,所以針對class文件加密再通過自定義的classloder進行解

原创 SpringBoot在Tomcat部署war包

啓動類配置 繼承SpringBootServletInitializer @SpringBootApplication public class TestApplication extends SpringBootServletInitia

原创 SpringBoot文件分片上傳

背景 最近好幾個項目在運行過程中客戶都提出文件上傳大小的限制能否設置的大一些,用戶經常需要上傳好幾個G的資料文件,如圖紙,視頻等,並且需要在上傳大文件過程中進行優化實時展現進度條,進行技術評估後針對框架文件上傳進行擴展升級,擴展接口支持大文

原创 SpringBoot整合Ehcache3

前言 公司部門老項目要遷移升級java版本,需要進行緩存相關操作,原框架未支持這部分,經過調研java相關緩存方案大致分爲ehcache和redis兩種,redis的value最大值爲500mb且超過1mb會對存取有性能影響,業務系統需要支

原创 SpringBoot整合達夢數據庫

安裝配置 軟件安裝 下載地址:https://www.dameng.com/view_61.html 本文以x86 win64 DM8爲例 安裝完畢後打開DM數據庫配置助手創建數據庫,設置字符集utf8,去除字符大小寫敏感 創建表空間及

原创 bat腳本一鍵配置java開發環境

背景 在新電腦配置或者新人入職時需要對java開發相關環境進行配置安裝,但時常會因爲安裝配置不到位或者操作錯誤導致時間的浪費,所以在空餘時間收集了一系列軟件的免安裝版本,並且編寫了相關配置腳本,讓環境安裝變得標準化。 概覽 安裝包目錄如下如

原创 SpringBoot-Web應用安全策略實現

背景 近期項目上線,甲方要求通過安全檢測才能進行驗收,故針對掃描結果對系統進行了一系列的安全加固,本文對一些常見的安全問題及防護策略進行介紹,提供對應的解決方案 跨站腳本攻擊 XSS常發生於論壇評論等系統,現在富文本編輯器已對XSS進行了防

原创 SpringBoot訪問jar包靜態文件

背景 項目開發過程中我們我們會遇到訪問靜態文件的情況,例如word書籤模板,excel導入模板,條文法規文件等,在war包的情況下訪問是沒有問題的,如果使用jar包部署,使用相對路徑訪問會出現問題,本文就此問題給出解決方案。 配置 reso

原创 SpringBoot多環境配置文件打包

背景 在使用springboot開發項目過程中,會有多種環境切換,例如開發環境,測試環境,演示環境,生產環境等,我們通過建立多個yml文件結合profiles.active屬性進行環境指定,但是需要打包時就要手動更改配置文件逐個打包,容易造