คำอธิบายประกอบมีการใช้งาน แต่ไม่ใช่สัญลักษณ์แสดงหัวข้อย่อยเงินเดียวที่จะฆ่าการกำหนดค่า XML ฉันแนะนำให้ผสมทั้งสองอย่าง!
ตัวอย่างเช่นหากใช้ Spring การใช้ XML สำหรับส่วนการฉีดการพึ่งพาของแอปพลิเคชันของคุณนั้นใช้งานง่ายโดยสิ้นเชิง สิ่งนี้ทำให้การอ้างอิงของรหัสอยู่ห่างจากรหัสที่จะใช้ในทางตรงกันข้ามการใช้คำอธิบายประกอบบางประเภทในรหัสที่ต้องการการอ้างอิงทำให้รหัสรับรู้ถึงการกำหนดค่าอัตโนมัตินี้
อย่างไรก็ตามแทนที่จะใช้ XML สำหรับการจัดการธุรกรรมการทำเครื่องหมายวิธีการเป็นธุรกรรมด้วยคำอธิบายประกอบนั้นเหมาะสมอย่างยิ่งเนื่องจากนี่เป็นข้อมูลที่โปรแกรมเมอร์อาจต้องการทราบ แต่อินเทอร์เฟซนั้นจะถูกแทรกเป็น SubtypeY แทนที่จะเป็น SubtypeX ไม่ควรรวมอยู่ในคลาสเพราะถ้าตอนนี้คุณต้องการฉีด SubtypeX คุณต้องเปลี่ยนรหัสของคุณในขณะที่คุณมีสัญญาอินเทอร์เฟซก่อนอย่างไรก็ตาม ด้วย XML คุณเพียงแค่ต้องเปลี่ยนการแมป XML และทำได้ค่อนข้างรวดเร็วและไม่เจ็บปวด
ฉันไม่ได้ใช้คำอธิบายประกอบ JPA ดังนั้นฉันไม่รู้ว่ามันดีแค่ไหน แต่ฉันจะเถียงว่าการทิ้งการแมปถั่วไปยังฐานข้อมูลใน XML นั้นดีเช่นกันเนื่องจากวัตถุไม่ควรสนใจว่าข้อมูลมาจากไหน ก็ควรสนใจว่าข้อมูลจะทำอะไรได้บ้าง แต่ถ้าคุณชอบ JPA (ฉันไม่มีวันหมดอายุด้วย) ก็ไปได้เลย
โดยทั่วไป: หากคำอธิบายประกอบให้ฟังก์ชันการทำงานและทำหน้าที่เป็นข้อคิดเห็นในและของตัวมันเองและไม่ผูกรหัสเข้ากับกระบวนการเฉพาะบางอย่างเพื่อให้ทำงานได้ตามปกติโดยไม่มีคำอธิบายประกอบนี้ให้ไปที่คำอธิบายประกอบ ตัวอย่างเช่นวิธีการทำธุรกรรมที่ทำเครื่องหมายว่าเป็นการทำธุรกรรมไม่ได้ฆ่าตรรกะในการทำงานและทำหน้าที่เป็นข้อคิดเห็นระดับรหัสที่ดีด้วย มิฉะนั้นข้อมูลนี้น่าจะแสดงเป็น XML ได้ดีที่สุดเนื่องจากแม้ว่าในที่สุดจะมีผลต่อวิธีการทำงานของโค้ด แต่ก็จะไม่เปลี่ยนฟังก์ชันการทำงานหลักของโค้ดและด้วยเหตุนี้จึงไม่อยู่ในไฟล์ต้นฉบับ
@Component
และ@Autowired
นี่คือการแบ่งขั้วที่ผิดพลาด มีวิธีอื่น ๆ ในการสร้างคอนฟิกูเรชันของคุณรวมถึงJavaConfigและ groovy config