Spring Boot, uygulamaların farklı ortamlar (geliştirme, test, prodüksiyon vb.) için farklı yapılandırma ayarlarını yönetmelerine olanak tanıyan spring.profiles mekanizmasını sunar. Bu özellik sayesinde, her bir ortam için ayrı yapılandırma dosyaları oluşturabilir ve uygulamanızın hangi profil altında çalışacağını belirleyebilirsiniz.
Profil Belirleme
Spring Boot, profilleri belirlemek ve yönetmek için spring.profiles.active özelliğini kullanır. Bu özelliği ayarlamanın birkaç farklı yolu vardır:
Uygulama Özellikleri Dosyası (application.properties veya application.yml):
application.propertiesveyaapplication.ymldosyasınaspring.profiles.activeekleyerek aktif profili belirleyebilirsiniz:propertiesspring.profiles.active=devveya
yamlspring: profiles: active: devKomut Satırı Argümanları:
Uygulamayı çalıştırırken komut satırı argümanları kullanarak aktif profili belirleyebilirsiniz:
bashjava -jar myapp.jar --spring.profiles.active=devOrtam Değişkenleri:
Ortam değişkenleri kullanarak profili ayarlayabilirsiniz:
bashexport SPRING_PROFILES_ACTIVE=devIDE Ayarları:
IDE'nizin (IntelliJ IDEA, Eclipse vb.) yapılandırma ayarlarında aktif profil belirleyebilirsiniz.
Profil Bazlı Yapılandırma Dosyaları
Spring Boot, belirli profillere özel yapılandırma dosyaları oluşturmanıza olanak tanır. Örneğin, application-dev.properties veya application-dev.yml gibi dosyalar oluşturabilirsiniz. Bu dosyalar, yalnızca ilgili profil aktif olduğunda yüklenir.
properties# application-dev.properties app.name=MyApp (Dev) app.featureX.enabled=true
properties# application-prod.properties app.name=MyApp (Prod) app.featureX.enabled=false
Profillerin Kullanımı
Bir profili kontrol etmek veya belirli bir profilde çalışmak için Spring Boot anotasyonlarını kullanabilirsiniz. Örneğin, belirli bir bileşeni sadece belirli bir profil aktifken yüklemek için @Profile anotasyonunu kullanabilirsiniz:
java
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
@Component
@Profile("dev")
public class DevComponent {
// ...
}
Çoklu Profiller
Birden fazla profili aynı anda etkinleştirebilirsiniz. Bunun için profilleri virgülle ayırmanız yeterlidir:
propertiesspring.profiles.active=dev,debug
Örnek Senaryo
Örneğin, geliştirici ortamında farklı bir veritabanı, prodüksiyon ortamında ise daha güvenli bir veritabanı yapılandırması kullanmak isteyebilirsiniz.