StackTraces
Boot
Tech Stack · 知識地圖

Spring Boot 報錯合集

從啟動失敗、循環依賴到事務失效與 CORS 跨域,覆蓋 Spring Boot 開發中最常踩到的坑,每條都附根因分析與驗證解法。

27 案例10 大類
啟動與自動設定5依賴注入與元件掃描3數據訪問4事務與緩存11Web 與序列化2網絡與外部調用1異步與消息2architecture-lifecycle4config-management1framework-pitfall8

啟動與自動設定

5 篇

啟動失敗、自動設定、Servlet 容器、Profile、打包

依賴注入與元件掃描

3 篇

Bean 缺失/衝突、循環依賴、@ComponentScan

數據訪問

4 篇

DataSource、JPA、連接池、Flyway、MyBatis

事務與緩存

11 篇

@Transactional 失效、傳播、緩存

已驗證

Spring Boot @Transactional 在 private 方法上失效

@Transactional 標在 private 方法上既不報錯也不生效,代理只能攔截穿過代理的外部調用,private 方法無法被覆蓋。

2026-09-27
已驗證

Spring Boot final 方法 CGLIB 代理失敗致事務失效

Spring Boot 預設用 CGLIB 代理,final 類或方法無法被子類化,註解靜默失效或拋 AopConfigException。

2026-09-14
已驗證

Spring Boot 受檢例外不回滾與 rollbackFor

@Transactional 預設只回滾 RuntimeException 和 Error,拋受檢例外時事務照常提交,需配 rollbackFor。

2026-09-14
已驗證

Spring Boot NESTED 報 TransactionSystemException

NESTED 依賴數據庫保存點實現部分回滾,JPA 方言不支持 savepoint 時直接拋 TransactionSystemException。

2026-09-14
已驗證

Spring Boot 新執行緒與 @Async 裡事務不傳播

事務上下文用 ThreadLocal 綁定當前執行緒,new Thread 或 @Async 裡的寫操作拿不到事務,獨立提交且不跟隨外層回滾。

2026-09-14
已驗證

Spring Boot 報 No bean named transactionManager

容器裡找不到名為 transactionManager 的 Bean 時,@Transactional 方法調用直接拋例外,多因自動裝配失效。

2026-09-14
已驗證

Spring Boot 多數據源報 NoUniqueBeanDefinitionException

配多數據源後 @Transactional 按類型找事務管理器,多個候選就拋 NoUniqueBeanDefinitionException。

2026-09-14
已驗證

Spring Boot REQUIRES_NEW 內層提交致外層回滾髒數據

REQUIRES_NEW 掛起外層事務並開啟獨立新事務,內層一旦提交,外層回滾無法撤銷,產生髒數據。

2026-09-14
已驗證

Spring Boot 事務內 try-catch 吞例外不回滾

Spring 只在例外穿過代理邊界時才回滾,事務方法內 try-catch 捕獲例外未重新拋出,代理感知不到,事務照常提交。

2026-09-14
已驗證

Spring Boot 報 UnexpectedRollbackException

內層事務例外被外層 catch 吞掉後繼續提交,但物理事務已標記 rollback-only,提交時拋 UnexpectedRollbackException。

2026-09-14
已驗證

Spring Boot 同類調用 self-invocation 致註解失效

同類裡用 this 調用帶 @Async 或 @Transactional 的方法,註解會靜默失效,可抽 Bean、注入自身代理或走 AopContext。

2026-08-22

Web 與序列化

2 篇

Controller、參數校驗、Jackson、CORS、例外處理

網絡與外部調用

1 篇

RestTemplate/WebClient、超時、連接

異步與消息

2 篇

@Async、定時任務、消息隊列

architecture-lifecycle

4 篇

config-management

1 篇

framework-pitfall

8 篇
已驗證

Spring Boot @Transactional 在 private 方法上失效

@Transactional 標在 private 方法上既不報錯也不生效,代理只能攔截穿過代理的外部調用,private 方法無法被覆蓋。

2026-09-27
已驗證

Spring Boot final 方法 CGLIB 代理失敗致事務失效

Spring Boot 預設用 CGLIB 代理,final 類或方法無法被子類化,註解靜默失效或拋 AopConfigException。

2026-09-14
已驗證

Spring Boot 受檢例外不回滾與 rollbackFor

@Transactional 預設只回滾 RuntimeException 和 Error,拋受檢例外時事務照常提交,需配 rollbackFor。

2026-09-14
已驗證

Spring Boot NESTED 報 TransactionSystemException

NESTED 依賴數據庫保存點實現部分回滾,JPA 方言不支持 savepoint 時直接拋 TransactionSystemException。

2026-09-14
已驗證

Spring Boot REQUIRES_NEW 內層提交致外層回滾髒數據

REQUIRES_NEW 掛起外層事務並開啟獨立新事務,內層一旦提交,外層回滾無法撤銷,產生髒數據。

2026-09-14
已驗證

Spring Boot 事務內 try-catch 吞例外不回滾

Spring 只在例外穿過代理邊界時才回滾,事務方法內 try-catch 捕獲例外未重新拋出,代理感知不到,事務照常提交。

2026-09-14
已驗證

Spring Boot 報 UnexpectedRollbackException

內層事務例外被外層 catch 吞掉後繼續提交,但物理事務已標記 rollback-only,提交時拋 UnexpectedRollbackException。

2026-09-14
已驗證

Spring Boot 報 BeanDefinitionOverrideException

Spring Boot 2.1 起預設禁用同名 Bean 覆蓋,業務程式碼與第三方 Starter 註冊同名 Bean 時拋該例外。

2026-09-04

還沒找到你要的那個報錯?

把你踩過的坑整理出來,幫助下一個遇到同樣問題的開發者。

貢獻一條解法