Konfigurasi Selamat Jenis dengan @ConfigurationProperties
Pautkan properties kepada kelas konfigurasi yang mempunyai jenis.
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: 3Menyuntik 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
prefixkepada kelas atau rekod - Daftarkan melalui
@ConfigurationPropertiesScanatau@EnableConfigurationProperties - Rekod membolehkan pengikatan pembina tidak berubah
- Jenis bersarang, senarai dan peta terikat secara semula jadi
@Validatedmenyebabkan konfigurasi tidak sah gagal dengan pantas semasa permulaan
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
- application.properties dan YAML
- Profil untuk Persekitaran
- Konfigurasi Selamat Jenis dengan @ConfigurationProperties
- Konfigurasi Luaran dan Penggantian