0Pricing
Spring Boot 4 Microservices & REST APIs · Ders

@ConfigurationProperties ile Tür Güvenli Yapılandırma

Özellikleri tür belirtilmiş yapılandırma sınıflarına bağlayın.

@ConfigurationProperties ile Tür Güvenli Yapılandırma, CoddyKit'te ücretsiz bir Spring Boot 4 Microservices & REST APIs dersidir. Bu, 4 dersinin 3. 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, Spring Boot 4 Microservices & REST APIs öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Spring Boot 4 Microservices & REST APIs kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Beyond @Value

Scattering dozens of @Value annotations across a feature is brittle and hard to validate. @ConfigurationProperties binds a whole group of related keys to a single strongly typed object.

You get IDE auto-completion, type safety, validation, and a clear contract for what the feature reads.

Binding a Prefix to a Class

Declare a class with a prefix; Spring maps each key under that prefix to a matching field. Relaxed binding lets max-retries in YAML map to maxRetries in Java.

@ConfigurationProperties(prefix = "app.mail")
public class MailProperties {
    private String host;
    private int port;
    private int maxRetries;
    // getters and setters
}

Registering the Properties Bean

A @ConfigurationProperties class must become a bean. The cleanest way is @EnableConfigurationProperties on a configuration class, or @ConfigurationPropertiesScan on the main app.

@SpringBootApplication
@ConfigurationPropertiesScan
public class Application { }

// or explicitly:
@Configuration
@EnableConfigurationProperties(MailProperties.class)
class MailConfig { }

The Backing YAML

With the prefix app.mail, these YAML keys bind to the fields. Relaxed binding accepts kebab-case keys for camelCase fields.

app:
  mail:
    host: smtp.example.com
    port: 587
    max-retries: 3

Injecting the Properties

Inject the typed object anywhere like any other bean. The feature code reads structured config instead of loose strings.

@Service
public class MailService {
    private final MailProperties props;
    public MailService(MailProperties props) {
        this.props = props;
    }
    void send() {
        connect(props.getHost(), props.getPort());
    }
}

Immutable Binding with Records

Spring Boot supports constructor binding, perfect for immutable config. A Java record works directly with @ConfigurationProperties, no setters needed.

@ConfigurationProperties(prefix = "app.mail")
public record MailProperties(
        String host,
        int port,
        int maxRetries) {
}

Default Values

With records you can give defaults in a compact constructor; with classic classes you initialize the field. Defaults apply when the key is absent from the Environment.

@ConfigurationProperties(prefix = "app.mail")
public record MailProperties(String host, Integer port, Integer maxRetries) {
    public MailProperties {
        if (port == null) port = 587;
        if (maxRetries == null) maxRetries = 3;
    }
}

Nested Objects

Configuration trees map to nested types. A field of a custom type binds keys one level deeper, keeping complex config organized.

@ConfigurationProperties(prefix = "app")
public class AppProperties {
    private final Security security = new Security();
    public Security getSecurity() { return security; }
    public static class Security {
        private boolean enabled;
        private String issuer;
        // getters/setters
    }
}

Lists and Maps

Collection-typed fields bind to YAML sequences and maps automatically, which is far cleaner than parsing comma-separated strings by hand.

@ConfigurationProperties(prefix = "app")
public class AppProperties {
    private List<String> allowedOrigins;
    private Map<String, Integer> rateLimits;
    // getters/setters
}
// app.allowed-origins: [a, b]
// app.rate-limits: { read: 100, write: 20 }

Validating Bound Values

Add @Validated to the properties class and JSR-380 constraints to fields. Spring validates at startup and fails fast if config is invalid, instead of erroring deep in production.

@Validated
@ConfigurationProperties(prefix = "app.mail")
public class MailProperties {
    @NotBlank private String host;
    @Min(1) @Max(65535) private int port;
    // getters/setters
}

Metadata and the Processor

Add spring-boot-configuration-processor as an annotation processor to generate metadata. Your IDE then offers auto-complete and docs for your custom keys in application.yml.

<!-- pom.xml -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

Quick Check

Test your understanding of relaxed binding.

Recap

@ConfigurationProperties gives type-safe, grouped configuration.

  • Bind a prefix to a class or record
  • Register via @ConfigurationPropertiesScan or @EnableConfigurationProperties
  • Records enable immutable constructor binding
  • Nested types, lists, and maps bind naturally
  • @Validated makes invalid config fail fast at startup

Sıkça Sorulan Sorular

“@ConfigurationProperties ile Tür Güvenli Yapılandırma” dersi ücretsiz mi?

Evet — “@ConfigurationProperties ile Tür Güvenli Yapılandırma” 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 Spring Boot 4 Microservices & REST APIs kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Spring Boot 4 Microservices & REST APIs kursu toplamda 4 dersten oluşur.

“@ConfigurationProperties ile Tür Güvenli Yapılandırma” dersinde ne öğreneceğim?

Özellikleri tür belirtilmiş yapılandırma sınıflarına bağlayın. Spring Boot 4 Microservices & REST APIs 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.

Spring Boot 4 Microservices & REST APIs öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Spring Boot 4 Microservices & REST APIs, 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 3. dersidir.

“@ConfigurationProperties ile Tür Güvenli Yapılandırma” 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 Spring Boot 4 Microservices & REST APIs dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Spring Boot 4 Microservices & REST APIs 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. application.properties ve YAML
  2. Ortamlar için Profiller
  3. @ConfigurationProperties ile Tür Güvenli Yapılandırma
  4. Harici ve Geçersiz Kılan Yapılandırma
← Spring Boot 4 Microservices & REST APIs Sayfasına Dön