0Pricing
Java Academy · Ders

Uygulama Özellikleri ve Profiller

Yapılandırmayı application.properties/yml ile dışa taşıyın, profilleri tanımlayın ve değerleri @Value ile @ConfigurationProperties kullanarak enjekte edin.

Uygulama Özellikleri ve Profiller, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

application.properties ve application.yml

Spring Boot, yapılandırmayı src/main/resources/application.properties veya application.yml dosyasından okur. YAML, anahtarları tekrarlamadan hiyerarşik yapılandırmayı destekler; özellikler açısından ikisi de eşdeğerdir.

# application.properties:
server.port=8080
spring.datasource.url=jdbc:postgresql://localhost/mydb
spring.jpa.hibernate.ddl-auto=validate

# Equivalent application.yml:
server:
  port: 8080
spring:
  datasource:
    url: jdbc:postgresql://localhost/mydb
  jpa:
    hibernate:
      ddl-auto: validate

@Value ile Değerleri Enjekte Etme

Tek bir özelliği enjekte etmek için @Value("${property.key}") kullanın. ${key:default} ile varsayılan değer ekleyin. SpEL ifadeleri desteklenir.

@Service
public class PricingService {
    @Value("${pricing.vat-rate:0.20}")
    private double vatRate;
    @Value("${app.name}")
    private String appName;
}

Tür Güvenli Bağlama için @ConfigurationProperties

İlişkili özellikler grubunu, @ConfigurationProperties ile açıklanmış bir Java kaydına veya sınıfına bağlayın. Doğrulama açıklamaları desteklenir.

@ConfigurationProperties(prefix = "app.mail")
public record MailProperties(
    @NotBlank String host,
    @Min(1) @Max(65535) int port,
    boolean ssl
) {}
// Bind in Spring Boot 3: @EnableConfigurationProperties(MailProperties.class)

Profiller: Ortamları Tanımlama

Profiller, ortama özel yapılandırmalara sahip olmanızı sağlar. Belirli bir profil etkin olduğunda etkinleşen bileşenler veya özellikler tanımlayabilirsiniz.

# application-dev.properties (active when profile=dev):
spring.datasource.url=jdbc:h2:mem:testdb
logging.level.com.example=DEBUG

# application-prod.properties (active when profile=prod):
spring.datasource.url=jdbc:postgresql://prod-db/app
logging.level.com.example=WARN

Profilleri Etkinleştirme

Bir profili application.properties, ortam değişkeni, sistem özelliği veya Spring Boot'un SPRING_PROFILES_ACTIVE özelliği aracılığıyla etkinleştirin.

# application.properties:
spring.profiles.active=dev
# Or environment variable:
export SPRING_PROFILES_ACTIVE=prod
# Or JVM argument:
java -Dspring.profiles.active=prod -jar app.jar

Bileşenlerde @Profile

Eşleşen profil etkin olduğunda kaydedilmesi için bir @Bean veya @Component üzerine @Profile("prod") ek açıklamasını yerleştirin.

@Configuration
public class DataSourceConfig {
    @Bean @Profile("dev")
    public DataSource h2DataSource() { return new EmbeddedDatabaseBuilder().build(); }
    @Bean @Profile("prod")
    public DataSource postgresDataSource() { return DataSourceBuilder.create().url(prodUrl).build(); }
}

Profil Grupları (Spring Boot 2.4+)

Birden çok profili tek bir ad altında gruplandırın. Grup etkinleştirildiğinde listelenen tüm profiller aynı anda etkinleşir.

# application.properties:
spring.profiles.group.production=prod,metrics,cloud

Ortam Değişkenleriyle Dışsallaştırılmış Yapılandırma

Spring Boot, ortam değişkenlerini özelliklere otomatik olarak eşler. DB_HOST, db.host ile eşlenir (esnek bağlama). Docker ve Kubernetes dağıtımları için idealdir.

# application.properties:
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASS}

Özelliklerin Geçersiz Kılınma Önceliği

Özellikler öncelik sırasına göre uygulanır: komut satırı bağımsız değişkenleri > ortam değişkenleri > profile özgü dosyalar > application.properties > varsayılan değerler. Daha yüksek öncelikli kaynaklar, daha düşük öncelikli kaynakların üzerine yazar.

Jasypt ile Hassas Özellikleri Şifreleme

Parolalar gibi hassas değerler Jasypt Spring Boot ile şifrelenebilir. Şifrelenmiş değeri özelliklerde saklayın; Jasypt, başlangıçta JVM bağımsız değişkeni olarak geçirilen bir ana anahtarı kullanarak değerin şifresini çözer.

# application.properties:
spring.datasource.password=ENC(k9r/2dfhXPQz+2jR8yzUYw==)
# JVM arg:
java -Djasypt.encryptor.password=masterSecret -jar app.jar

Çok Belgeli YAML Dosyaları

YAML dosyaları, --- ile ayrılmış birden çok belgeyi destekler. Satır içi profile özgü yapılandırma için her belgenin içinde spring.config.activate.on-profile kullanın.

server:
  port: 8080
---
spring:
  config:
    activate:
      on-profile: prod
server:
  port: 443

Hızlı Kontrol

İlgili özelliklerden oluşan bir grubu tür güvenliğiyle bir Java sınıfına bağlayan ek açıklama hangisidir?

Özet

Yapılandırma için application.properties / application.yml kullanın. Tekil değerler için @Value, gruplar için @ConfigurationProperties kullanın. Profiller ortamları birbirinden ayırır. Ortam değişkenleri özelliklerin üzerine yazar — kapsayıcılar için temel bir özelliktir.

Sıkça Sorulan Sorular

“Uygulama Özellikleri ve Profiller” dersi ücretsiz mi?

Evet — “Uygulama Özellikleri ve Profiller” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Uygulama Özellikleri ve Profiller” dersinde ne öğreneceğim?

Yapılandırmayı application.properties/yml ile dışa taşıyın, profilleri tanımlayın ve değerleri @Value ile @ConfigurationProperties kullanarak enjekte edin. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Uygulama Özellikleri ve Profiller” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Otomatik Yapılandırma ve Spring Boot Başlatıcıları
  2. Uygulama Özellikleri ve Profiller
  3. Bean Bağlama: @Component, @Service, @Repository
  4. Yapıcı Enjeksiyonu ve Döngüsel Bağımlılıklar
← Java Academy Sayfasına Dön