Spring Boot 的核心價值在於 「約定優於配置」:
File → New → Project → Spring Initializr → 填坐標 → 勾選 Spring Web、Lombok、Spring Boot DevTools → Finish。
@SpringBootApplication // 組合:@Configuration + @EnableAutoConfiguration + @ComponentScan
@RestController
public class DemoApplication {
public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }
@GetMapping("/")
public String home() { return "Hello Spring Boot!"; }
}
server:
port: 8080
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
右鍵主類 Run As → Spring Boot App,瀏覽器訪問 https://localhost:8080/api/ 返回 Hello Spring Boot!。
Druid 是阿里開源的高性能連接池,具備 SQL 監控、防火牆、密碼加密等企業級特性。
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.18</version></dependency>
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
validation-query: SELECT 1
test-on-borrow: false
test-on-return: false
test-while-idle: true
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
# 監控頁面(生產環境建議關閉或加 IP 白名單)
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: admin123
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.css,/druid/*"
啟動後訪問 https://localhost:8080/api/druid/,登錄查看 SQL 執行統計、連接池狀態、慢查詢分析。
| 註解 | 作用 |
|---|---|
@SpringBootApplication | 主啟動類標識,開啟自動裝配與掃描 |
@EnableAutoConfiguration | 根據 classpath 自動配置 Bean |
@ConfigurationProperties(prefix="x") | 將配置綁定到 POJO |
@ConditionalOnClass/MissingBean | 條件裝配,編寫 Starter 核心 |
@Profile("dev") | 環境隔離配置 |
Build → Compile automatically + Registry → compiler.automake.allow.when.app.running。@Lazy 打破環。@ConfigurationProperties prefix 是否匹配。Spring Boot 以極簡配置重新定義了 Java 企業級開發體驗。掌握 Starter 機制、自動裝配原理、Actuator 監控與外部化配置,即可快速交付可觀測、可維護的生產級微服務。