Spring Boot @ConditionalOnProperty

สำหรับวันนี้เรียกว่าไปแงะจากที่เรียน Course manning live project อันเก่าที่ดองไว้ แล้วพยายามหาความสัมพันธ์ เพราะ ผมสาย dotnet มันเลยไม่มีแบบนี้ เลยเขียน Blog ไว้ดีกว่าครับ @ConditionalOnProperty คือ อะไร เจ้า @ConditionalOnProperty เป็นส่วนนึงของ Spring Boot auto-configuration module (org.springframework.boot.autoconfigure.*) แล้วที่นี่มันทำให้ Config แล้วยิงพวก feature flag ได้ จากตัวอย่าง ผมสงสัยตัว ที่นี้มาลองชำแหละกัน DomainConfig ตรงบรรทัดที่ 9 การกำหนด config ถ้าใน application.properties หรือ yaml ส่วนของ SampleDataLoader ทำงานจะเป็นตามนี้ครับ เงื่อนไขทำงานของ sampleDataLoader ถ้ามี dataloader + loadsample และต้องมีค่า true (จากในส่วน havingValue) แล้วที่นี้ในส่วน ENV จะถ้าสังเกตุใน Docker Compose จะกำหนดตามนี้ นอกจากนี้ยังมี matchIfMissing ใช้สำหรับกำหนดค่า default กรณีที่ไม่ได้กำหนด properties ไว้ใน application.properties หรือ yaml หรือ ENV มันจะใช้ค่า default แทน อ๋อ และลองกลับไปหาใน dotnet มีทำ lib คล้ายๆกันไว้ ถ้าเป็นปกติแล้ว เหมือนจะเขียน if ดักเอาเองใน DI








