Perkhidmatan Mikro dan API REST Spring Boot 4 · Pelajaran

Konfigurasi Selamat Jenis dengan @ConfigurationProperties

Pautkan properties kepada kelas konfigurasi yang mempunyai jenis.

Pelajaran 3 daripada 413 langkah

Konfigurasi Selamat Jenis dengan @ConfigurationProperties ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.

Melangkaui @Value

Menaburkan berpuluh-puluh anotasi @Value merentas satu ciri adalah rapuh dan sukar disahkan. @ConfigurationProperties mengikat seluruh kumpulan kunci berkaitan kepada satu objek yang ditaip kuat.

Anda mendapat pelengkapan automatik IDE, keselamatan jenis, pengesahan, serta kontrak yang jelas tentang perkara yang dibaca oleh ciri tersebut.

Mengikat Awalan kepada Kelas

Isytiharkan kelas dengan prefix; Spring memetakan setiap kunci di bawah awalan itu kepada medan yang sepadan. Pengikatan longgar membolehkan max-retries dalam YAML dipetakan kepada maxRetries dalam Java.

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

Mendaftarkan Komponen Sifat

Kelas @ConfigurationProperties mesti menjadi komponen. Cara paling kemas ialah menggunakan @EnableConfigurationProperties pada kelas konfigurasi, atau @ConfigurationPropertiesScan pada aplikasi utama.

@SpringBootApplication
@ConfigurationPropertiesScan
public class Application { }

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

YAML Sokongan

Dengan awalan app.mail, kunci YAML ini mengikat kepada medan tersebut. Pengikatan longgar menerima kunci bentuk tanda sempang untuk medan camelCase.

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

Menyuntik Sifat

Suntik objek bertip itu di mana-mana sahaja seperti komponen lain. Kod ciri membaca konfigurasi berstruktur dan bukannya rentetan longgar.

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

Pengikatan Tidak Berubah dengan Rekod

Spring Boot menyokong pengikatan pembina, yang amat sesuai untuk konfigurasi tidak berubah. record Java berfungsi terus dengan @ConfigurationProperties, tanpa memerlukan penetap.

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

Nilai Lalai

Dengan rekod, anda boleh memberikan nilai lalai dalam pembina padat; dengan kelas klasik, anda memulakan medan tersebut. Nilai lalai digunakan apabila kunci tiada dalam 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;
    }
}

Objek Bersarang

Pepohon konfigurasi dipetakan kepada jenis bersarang. Medan daripada jenis tersuai mengikat kunci pada satu aras lebih dalam, lalu memastikan konfigurasi kompleks kekal tersusun.

@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
    }
}

Senarai dan Peta

Medan berjenis koleksi mengikat kepada jujukan dan peta YAML secara automatik, yang jauh lebih kemas daripada menghuraikan rentetan dipisahkan koma secara manual.

@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 }

Mengesahkan Nilai Terikat

Tambahkan @Validated pada kelas sifat dan kekangan JSR-380 pada medan. Spring mengesahkan konfigurasi semasa permulaan dan gagal dengan pantas jika konfigurasi tidak sah, bukannya melaporkan ralat jauh di dalam pengeluaran.

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

Metadata dan Pemproses

Tambahkan spring-boot-configuration-processor sebagai pemproses anotasi untuk menjana metadata. IDE anda kemudiannya menawarkan pelengkapan automatik dan dokumentasi untuk kunci tersuai dalam application.yml.

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

Semakan Ringkas

Uji pemahaman anda tentang pengikatan longgar.

Rumusan

@ConfigurationProperties menyediakan konfigurasi berkumpulan yang selamat dari segi jenis.

  • Ikat prefix kepada kelas atau rekod
  • Daftarkan melalui @ConfigurationPropertiesScan atau @EnableConfigurationProperties
  • Rekod membolehkan pengikatan pembina tidak berubah
  • Jenis bersarang, senarai dan peta terikat secara semula jadi
  • @Validated menyebabkan konfigurasi tidak sah gagal dengan pantas semasa permulaan
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
24
Pelajaran
93

Soalan Lazim

Adakah pelajaran “Konfigurasi Selamat Jenis dengan @ConfigurationProperties” percuma?

Ya — teks penuh “Konfigurasi Selamat Jenis dengan @ConfigurationProperties” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Konfigurasi Selamat Jenis dengan @ConfigurationProperties”?

Pautkan properties kepada kelas konfigurasi yang mempunyai jenis. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Perkhidmatan Mikro dan API REST Spring Boot 4?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Konfigurasi Selamat Jenis dengan @ConfigurationProperties” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 ini?

Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. application.properties dan YAML
  2. Profil untuk Persekitaran
  3. Konfigurasi Selamat Jenis dengan @ConfigurationProperties
  4. Konfigurasi Luaran dan Penggantian
← Kembali ke Perkhidmatan Mikro dan API REST Spring Boot 4