原创 在 Spring Boot 項目中實現文件下載功能
(一)需求 在您的 springboot 項目中,可能會存在讓用戶下載文檔的需求,比如讓用戶下載 readme 文檔來更好地瞭解該項目的概況或使用方法。 所以,您需要爲用戶提供可以下載文件的 API ,將用戶希望獲取的文件作爲下載
原创 Spring Boot + MyBatis 多數據源解決方案
(一)需求 基於 Spring Boot + MyBatis 是目前最流行的後端 CRUD 開發框架組合,在 CRUD 項目開發過程中,往往會需要連接多個數據庫。目前解決方案有 JPA 多數據源方案、AOP 動態切換等,但都比較複
原创 Linux 用 tar.gz 壓縮包安裝 MySQL 5.7
1. 準備工作 下載 請前往 MySQL 官網 下載所需的安裝包。 在下載頁面進行如下選擇,下載 tar.gz 壓縮包。 上傳並解壓 使用 Xftp 或 rz 命令將壓縮包上傳到 Linux 服務器 /usr/local/ 路徑
原创 SSH遠程重啓Tomcat時無法找到JAVA_HOME也連接不上SAP
1. catalina.sh添加Java環境變量 在Agent上通過SSH命令重啓目標應用服務器的Tomcat時: ssh root@server_ip "/usr/local/tomcat/bin/startup.sh" 可能
原创 添加Agent和應用服務器之間的SSH互信
背景及概念 CICD已經成爲了各公司敏捷開發的重點,而CICD中除了開發部分,自動部署也是極爲重要的一環。 之前的博文也介紹了Atlassian公司的自動化發佈工具Bamboo,運用它可以大大減少運維人員在發佈應用過程中的重複操作
原创 趣味MySQL:查詢NBA球員的冠軍總數
1. Kobe or Lebron? 寫這篇博客的目的完全來自於一位朋友在我朋友圈的評論,他半開玩笑地說,你試試用SQL查出科比和勒布朗的奪冠總數。我是一個資深NBA球迷,同時也是科蜜(科比.布萊恩特的球迷),所以我覺得用我的職業
原创 MySQL 調優:直接 JOIN or 先子查詢再 JOIN?
1. 問題背景 最近,一個朋友的項目經理指出他的 SQL 寫得有問題。 朋友的 SQL 大致如下,他的想法是常規操作,直接使用 JOIN … ON … 做聯表查詢: select needed cols... from t1 i
原创 基於Spring Security OAuth2的SSO(單點登錄)
1. Theories What is SSO? 單點登錄(Single Sign On),簡稱爲 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應
原创 都是MyBatis分頁工具PageHelper惹的禍 —— 記一次加入GROUP BY分組查詢成功,不分組則失敗的奇怪現象Debug過程
項目技術框架 請您打開世界上最好使的Java編譯器IntelliJ IDEA,建一個SpringBoot項目,保證項目中包含以下依賴: 後端框架:SpringBoot + JUnit 數據庫持久化:MySQL + MyBatis
原创 記一次基於JUnit的代碼平穩升級:使用JDK8日期新特性處理項目中的日期相關邏輯
本文工作 本文記錄瞭如何使用JDK8基於DateTimeFormatter和LocalDateTime的工具類JDK8DateUtils取代舊版的基於SimpleDateFormat和Date的工具類DateUtils,在此過程中
原创 MockMVC登錄後測試SpringBoot項目包含Shiro Subject的控制層方法
UnavailableSecurityManagerException 在常規SpringBoot項目中,我們往往在單元測試類中直接使用@Autowired註解注入Bean實例,並在Test方法中調用實例方法。但如果該項目加入了S
原创 JaCoCo生成Java + Maven項目的代碼覆蓋率檢測報告
代碼覆蓋率 What is Code Coverage - from Wikipedia In computer science, test coverage is a measure used to describe the
原创 Java實用工具類-根據當前weekday返回分段排序的週一至週日
需求 如圖所示,當: weekday = 1時,返回Set:[1, 2, 3, 4, 5, 6, 7] weekday = 2時,返回Set:[2, 3, 4, 5, 6, 7, 1] weekday = 3時,返回Set:[3
原创 基於Bitbucket和Bamboo的SpringBoot項目CICD(持續集成和部署)
基本概念 簡單地說,Bitbucket是公司內部的Git遠端源碼管理工具,相當於Gitlab或Github;Bamboo是自動化運維工具,可以構建、打包、部署,相當於Jenkins。 可以前往Atlassian官網瞭解Bitbuc
原创 MongoDB在拷貝數據庫時無法連接數據源主機的問題及解決方案
使用db.copyDatabase(from, to, host),例如: db.copyDatabase("windowsdb", "linuxdb", "windows-ip") 命令在Linux上的MongoDB備份Win