Eclipse 內建 Tomcat 啟動預設超時 45 秒。專案啟動時若初始化耗時過長 (Spring 容器啟動、資料庫連線池建立、大量 Bean 掃描、外部服務呼叫等),會拋出:
Server Tomcat v9.0 at localhost failed to start within 45 seconds.
If the server requires more time, try increasing the timeout in the server editor.

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, ...})spring.main.lazy-initialization=true (Spring Boot 2.2+)@ComponentScan(basePackages = "com.core") 精確指定spring-boot-devtools,修改類自動重啟而非全量啟動
# HikariCP (預設) 快速啟動配置
spring.datasource.hikari:
initialization-fail-timeout: 0 # 不阻塞啟動等待連線
minimum-idle: 0 # 啟動不預建連線
maximum-pool-size: 10 # 開發環境減小池大小
spring.factories 條件裝配而非全量掃描
# 在 Tomcat 運行配置 → Arguments → VM arguments 添加
-Xms512m -Xmx2048m
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-Dspring.profiles.active=dev
# logging.level.org.apache.catalina=DEBUG
# logging.level.org.springframework=INFO
| 現象 | 可能原因 | 排查方向 |
|---|---|---|
| 停在 "Initializing Spring embedded WebApplicationContext" | Bean 定義解析、掃描過多 | 縮小掃描包、移除無用 Bean |
| 停在 "HikariPool-1 - Starting..." | 資料庫連線慢/不可達 | 檢查 DB 連線、網路、防火牆、DNS |
| 停在 "Registering beans for JMX exposure" | MBean 註冊慢 | 關閉 JMX 或減少暴露 |
| 停在 "Discovering registrations" | Eureka/Nacos 註冊中心連線 | 配置註冊中心地址、網路通暢 |
| ClassNotFound/NoClassDefFoundError | 依賴衝突/缺失 | Maven dependency:tree 分析 |
# docker-compose.yml
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
volumes:
- ./target/classes:/app/target/classes # 熱加載類文件
- ~/.m2:/root/.m2 # Maven 快取
environment:
- SPRING_PROFILES_ACTIVE=dev
depends_on:
- db
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: 123456
優點:環境一致性、隔離性、一鍵啟動、團隊統一。
spring-boot-devtools + lazy-initialization