ใช้ @Profile ใน java spring เพื่อปิดการใช้งานคุณสมบัติบางอย่าง

ข้อกำหนดของฉันคือ เมื่อฉันสร้างโปรเจ็กต์ด้วยโปรไฟล์ 'dev' (mvn clean install -Pdev) ในเวลานั้น ฉันจำเป็นต้องปิดการใช้งานคุณสมบัติบางอย่าง หากโปรไฟล์ไม่ใช่ 'dev' ก็ไม่จำเป็นต้องลบคุณสมบัติเหล่านั้น นี่คือ root pom.xml ของฉัน

<profile>
        <id>dev</id>
        <modules>
            <module>../cmn/module1</module>
            <module>../cmn/module2</module>
            <module>../cmn/module3</module>
        </modules>
    </profile>

ฉันต้องปิดการใช้งานคุณสมบัติบางอย่างในโมดูล 3 (ซึ่งมี pom.xml แยกต่างหาก) และฉันกำลังวางคุณลักษณะตัวอย่างที่ต้องปิดการใช้งานเมื่อโปรไฟล์เป็น 'dev'

@Configuration
public class Sample{
}

ฉันรู้ว่า @Profile เป็นคำอธิบายประกอบที่ถูกต้องในการปิดการใช้งานคุณสมบัติบางอย่าง จากนั้นฉันก็ได้แก้ไขคลาสเป็นแบบด้านล่างนี้

@Configuration
@Profile("!dev")
public class Sample{
}

'!dev' หมายความว่าคุณสมบัตินี้ถูกปิดใช้งานสำหรับโปรไฟล์ 'dev' นอกเหนือจาก 'dev' ควรเปิดใช้งาน แต่ด้วย @Profile(!dev) คุณลักษณะจะไม่ถูกปิดใช้งาน ฉันได้สร้างโครงการด้วย 'mvn clean install -Pdev' โปรเจ็กต์ยังคงมีตัวอย่างฟีเจอร์

เกิดอะไรขึ้นกับฉัน? ฉันจะปิดการใช้งานคุณสมบัติตัวอย่างได้อย่างไรเมื่อโปรเจ็กต์ของฉันสร้างด้วยโปรไฟล์ 'dev'

ขอบคุณล่วงหน้า...


person prakash kandhasamy    schedule 03.02.2021    source แหล่งที่มา