application.yml & YAML
application.yml, application.properties ka ALTERNATIVE hai — SAME configuration, DIFFERENT (HIERARCHICAL, indentation-based) syntax mein. Bade, COMPLEX configurations ke liye, YAML zyaada READABLE hai — RELATED properties NESTED, VISUALLY GROUPED hote hain, repetitive PREFIX (jaise spring.datasource.) baar-baar likhne ki zaroorat NAHI.
DONO (properties aur YAML) FUNCTIONALLY EQUIVALENT hain — Spring Boot DONO ko SUPPORT karta hai (agar DONO files EXIST karte hain, .properties PRIORITY leta hai). TEAM/PROJECT convention decide karta hai KAUN SA use karna hai — MODERN projects mein YAML zyaada POPULAR hai, especially MULTIPLE PROFILES ke liye.
# application.yml — same config, HIERARCHICAL:
server:
port: 8081
servlet:
context-path: /api
spring:
datasource:
url: jdbc:postgresql://localhost:5432/bookstore
username: admin
password: secret
logging:
level:
org.springframework: INFO
com.example: DEBUG
app:
jwt:
expiration: 86400000
# Multiple profiles EK FILE mein (--- separator):
---
spring:
config:
activate:
on-profile: prod
server:
port: 80- YAML = hierarchical, indentation-based (properties se ZYAADA readable, bade configs ke liye)
- Dono formats FUNCTIONALLY equivalent — .properties PRIORITY leta hai agar dono exist karein
- --- separator se, EK FILE mein MULTIPLE profiles define ho sakte hain
YAML mein LISTS (arrays) dash (-) prefix se define hoti hain — properties file mein ARRAYS express karna MUSHKIL/AWKWARD hai (comma-separated ya indexed keys), YAML mein YE NATURAL hai.
app:
allowed-origins:
- http://localhost:3000
- https://myapp.com
features:
- name: dark-mode
enabled: true
- name: notifications
enabled: falseOnline CONVERTERS aur IDE plugins available hain properties ↔ YAML CONVERT karne ke liye — LOGIC simple hai: DOT-separated keys (spring.datasource.url) YAML mein NESTED INDENTATION ban jaate hain.