Spring Boot 以 application.properties (或 .yml) 替代傳統 XML,支援模組化 Starter 自動配置。
# application.properties com.example.blog.name=程序猿DD com.example.blog.title=Spring Boot教程
@Component
public class BlogProperties {
@Value("${com.example.blog.name}")
private String name;
@Value("${com.example.blog.title}")
private String title;
// getter/setter
}
@SpringBootTest
class ApplicationTests {
@Autowired BlogProperties props;
@Test void test() {
assertEquals("程序猿DD", props.getName());
assertEquals("Spring Boot教程", props.getTitle());
}
}
com.example.blog.name=程序猿DD
com.example.blog.title=Spring Boot教程
com.example.blog.desc=${com.example.blog.name}正在努力寫《${com.example.blog.title}》
結果:desc = "程序猿DD正在努力寫《Spring Boot教程》"
# 隨機字符串 (UUID)
com.example.value=${random.value}
# 隨機 int
com.example.number=${random.int}
# 隨機 long
com.example.bignumber=${random.long}
# 0-9 隨機 int
com.example.test1=${random.int(10)}
# 10-19 隨機 int
com.example.test2=${random.int[10,20]}
適用場景:測試端口、生成密鑰、模擬數據。
java -jar app.jar --server.port=8888
-- 前綴標識配置屬性覆蓋application.properties 寫 server.port=8888@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setAddCommandLineProperties(false); // 禁用
app.run(args);
}
}
application-dev.properties # 開發環境 application-test.properties # 測試環境 application-prod.properties # 生產環境
# application.properties 指定默認 spring.profiles.active=dev
application.propertiesjava -jar app.jar --spring.profiles.active=test # 啟用 test 環境 java -jar app.jar --spring.profiles.active=prod # 啟用 prod 環境
# dev: server.port=1111 # test: server.port=2222 # prod: server.port=3333 java -jar app.jar → 啟動端口 1111 (dev) java -jar app.jar --spring.profiles.active=test → 啟動端口 2222 java -jar app.jar --spring.profiles.active=prod → 啟動端口 3333
# application.yml
com:
example:
blog:
name: 程序猿DD
title: Spring Boot教程
desc: ${com.example.blog.name}正在努力寫《${com.example.blog.title}》
spring:
profiles:
active: dev
application.properties 放**通用配置** + spring.profiles.active=dev 默認環境application-{profile}.properties 放**環境差異配置** (DB、Redis、端口、第三方服務地址)--spring.profiles.active=xxx 切換環境,**不修改代碼/重新打包**@ConfigurationProperties 類型安全綁定,替代分散的 @Value