application.properties
μ€νλ§ νλ μμν¬μμ application.properties νμΌμ μ ν리μΌμ΄μ κ΅¬μ± μ€μ μ μ μνλ λ° μ¬μ©λλ€. μ΄ νμΌμλ μ ν리μΌμ΄μ μ€νμ νμν νκ²½λ³ μ€μ , μΈλΆ μλΉμ€ μ°κ²° μ 보, λ€μν 컀μ€ν μ€μ κ° λ±μ΄ ν¬ν¨λ μ μλ€.
μ£Όμ μν μ λ€μκ³Ό κ°λ€:
- λ°μ΄ν°λ² μ΄μ€ μ€μ : λ°μ΄ν°λ² μ΄μ€ μ°κ²° μ 보, μ¬μ©μ μ΄λ¦, λΉλ°λ²νΈ λ± λ°μ΄ν°λ² μ΄μ€ κ΄λ ¨ μ€μ μ μ§μ νλ€.
- μλ² κ΅¬μ±: μλ² ν¬νΈ, μ½ν μ€νΈ κ²½λ‘, μΈμ νμμμ λ± μλ² κ΄λ ¨ μ€μ μ μ μνλ€.
- λ‘κΉ μ€μ : λ‘κ·Έ μμ€, λ‘κ·Έ νμΌ κ²½λ‘μ κ°μ λ‘κΉ μ€μ μ κ΄λ¦¬νλ€.
- μ ν리μΌμ΄μ 맀κ°λ³μ: μ ν리μΌμ΄μ λ΄λΆμμ μ¬μ©ν 맀κ°λ³μλ₯Ό μ μνμ¬ μ½λμμ μ°Έμ‘°ν μ μκ² νλ€.
- μ€νλ§ λΆνΈ μλ ꡬμ±: μ€νλ§ λΆνΈμ μλ ꡬμ±μ μν₯μ λ―ΈμΉλ μμ±μ μ‘°μ νλ€.
- νλ‘νμΌ κ΄λ¦¬: κ°λ°, ν μ€νΈ, νλ‘λμ λ±μ λ€λ₯Έ νκ²½μ μ ν©ν μ€μ μ μ μνκ³ μ μ©νλ€.
- κ΅μ ν λ° μ§μν μ€μ : λ€μν μ§μ μ€μ κ³Ό λ©μμ§ μμ€λ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ κ΅μ νλ₯Ό μ§μνλ€.
- 보μ μ€μ : μ€νλ§ μνλ¦¬ν° μ€μ λ± λ³΄μ κ΄λ ¨ νλ μμν¬μ μ€μ μ ν¬ν¨νλ€.
- μΈλΆ μλΉμ€ μ°λ: λ©μΌ μλ² μ€μ , μμ λ‘κ·ΈμΈ μ 보, API ν€ λ± μΈλΆ μλΉμ€μμ μ°λμ νμν μ 보λ₯Ό ν¬ν¨νλ€.
μ€νλ§ λΆνΈλ₯Ό μ¬μ©νλ νλ‘μ νΈμμλ μ΄ νμΌμ ν΅ν΄ μ μΈμ μΌλ‘ μ€μ μ κ΄λ¦¬νλ©°, src/main/resources λλ ν 리 μλμ μμΉνλ€. application.properties λμ YAML νμμ application.yml νμΌμ μ¬μ©νλ κ²λ κ°λ₯νλ€.
μ€νλ§ μ¬μ΄νΈμμ application.properties νμΌ λλ application.yml μ μ¬μ©λλ Common Application Properties λ€μ νμΈν μ μλ€.
@Value
μ€νλ§ νλ μμν¬μμ @Value μ΄λ Έν μ΄μ μ νλ‘νΌν° νμΌ, νκ²½ λ³μ, μ΄λ Έν μ΄μ μ λͺ μλ κΈ°λ³Έκ° λ±μμ κ°μ μ£Όμ λ°κΈ° μν΄ μ¬μ©λλ€. μ΄ μ΄λ Έν μ΄μ μ νλ λ 벨, λ©μλ νλΌλ―Έν° λ 벨, κ·Έλ¦¬κ³ μμ±μ νλΌλ―Έν° λ 벨μ μ μ©λ μ μλ€. μ£Όμ νκ³ μ νλ κ°μ μΆμ²λ 리ν°λ΄ κ°, νλ‘νΌν° νμΌ, μμ€ν νλ‘νΌν°, νκ²½ λ³μ λ±μ΄ λ μ μλ€.
μ¬μ© μμλ λ€μκ³Ό κ°λ€:
@Component
public class SomeClass {
@Value("${some.property.name}")
private String propertyValue;
@Value("${some.missing.property:default value}")
private String propertyWithDefaultValue;
@Value("#{systemProperties['some.system.property']}")
private String systemPropertyValue;
// μμ±μμμμ μ¬μ© μμ
public SomeClass(@Value("${some.constructor.property}") String constructorValue) {
// ...
}
}
μμ μμμμλ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ @Value μ΄λ Έν μ΄μ μ μ¬μ©νλ€:
- νλ‘νΌν° νμΌμμ κ° μ£Όμ : @Value("${some.property.name}")λ νλ‘νΌν° νμΌμ μ μλ some.property.name ν€μ ν΄λΉνλ κ°μ propertyValue νλμ μ£Όμ νλ€.
- κΈ°λ³Έκ°μ κ°μ§ νλ‘νΌν°: @Value("${some.missing.property:default value}")λ some.missing.property ν€μ ν΄λΉνλ κ°μ΄ μμ κ²½μ° default valueλ₯Ό propertyWithDefaultValue νλμ μ£Όμ νλ€.
- μμ€ν νλ‘νΌν°μμ κ° μ£Όμ : @Value("#{systemProperties['some.system.property']}")λ μμ€ν νλ‘νΌν°μμ some.system.property ν€μ ν΄λΉνλ κ°μ systemPropertyValue νλμ μ£Όμ νλ€.
- μμ±μ νλΌλ―Έν°λ‘ κ° μ£Όμ : μμ±μ νλΌλ―Έν°μ @Value μ΄λ Έν μ΄μ μ μ¬μ©νμ¬ νλ‘νΌν° κ°μ μ£Όμ ν μλ μλ€.
@Value μ΄λ Έν μ΄μ μ μ¬μ©ν λ μ£Όμν΄μΌ ν μ μ μ£Όμ νλ €λ κ°μ΄ νλ‘νΌν° νμΌμ μμ κ²½μ° μλ¬κ° λ°μν μ μλ€λ κ²μ΄λ€. κ·Έλ¬λ κΈ°λ³Έκ°μ μ 곡ν¨μΌλ‘μ¨ μ΄λ¬ν λ¬Έμ λ₯Ό λ°©μ§ν μ μλ€. λν, μ€νλ§ νν μΈμ΄ (SpEL)μ μ¬μ©νμ¬ λ³΄λ€ λ³΅μ‘ν κ°μ μ£Όμ λ κ°λ₯νλ€.
ν¨κ» 보면 μ’μ λ§ν¬
https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html