PropertyResolver Property Solver ส่วนใหญ่มีสองฟังก์ชั่น:
รับค่าคุณสมบัติ PropertyValue ที่สอดคล้องกัน (GetProperty) ผ่านชื่อคุณสมบัติ PropertyName
แทนที่ผู้ถือครองคุณสมบัติในรูปแบบ $ {PropertyName: DefaultValue} ด้วยมูลค่าจริง (ResolvePlaceHolders)
หมายเหตุ: ค่าทรัพย์สินที่ได้รับจาก GetProperty เป็นค่าทั้งหมดหลังจากการโทรหาผู้ถือครองตำแหน่งสำหรับการทดแทนสถานที่
ไดอะแกรมระบบส่วนประกอบมีดังนี้:
อินเทอร์เฟซ PropertyResolver:
อินเทอร์เฟซนี้กำหนดฟังก์ชั่นทั้งหมดที่ส่วนประกอบมี หนึ่งคือการได้รับค่าที่สอดคล้องกันผ่านคีย์ เมื่อไม่สามารถรับค่าได้มี 3 ตัวเลือก: ส่งคืนค่า NULL ใช้ค่าเริ่มต้นที่ระบุหรือโยนข้อยกเว้นสถานะที่ผิดกฎหมาย ค่าที่ได้คือประเภทสตริงโดยค่าเริ่มต้น แน่นอนว่ามันยังสามารถพิจารณาได้ว่าเป็นการระบุประเภทซึ่งขึ้นอยู่กับการแปลงสำหรับการแปลงประเภท
มีปัญหาอื่น: มูลค่าคุณสมบัติสามารถมีตัวยึดตำแหน่งในรูปแบบของ $ {} ดังนั้นฟังก์ชั่นอื่นได้ถูกเพิ่มเข้าไปในอินเทอร์เฟซคือการแทนที่ตัวยึดตำแหน่งในมูลค่าทรัพย์สิน (หมายเหตุ: ตัวยึดตำแหน่งไม่อนุญาตให้ใช้ชื่อแอตทริบิวต์และแม้ว่าจะมีอยู่ เมื่อไม่สามารถเปลี่ยนตำแหน่งผู้ถือครองได้มีสองตัวเลือก: เก็บไว้ตามที่เป็นหรือโยนข้อยกเว้นพารามิเตอร์ที่ผิดกฎหมาย อินเทอร์เฟซเฉพาะมีดังนี้:
อินเทอร์เฟซที่กำหนดค่าได้ PropertyResolver:
อินเทอร์เฟซนี้กำหนดวิธีการกำหนดค่าส่วนประกอบ ตัวอย่างเช่น: ฉันเพิ่งพูดถึงว่าเมื่อได้รับค่าคุณสามารถระบุประเภทใดก็ได้ซึ่งขึ้นอยู่กับการแปลงสำหรับการแปลงประเภท อินเทอร์เฟซปัจจุบันให้การตั้งค่าและการได้มาซึ่ง Conversionservice นอกจากนี้คุณสามารถกำหนดค่ารูปแบบของตัวยึดสถานที่ให้บริการ ได้แก่ : คำนำหน้าของตัวยึดตำแหน่ง (ค่าเริ่มต้นคือ "$ {"), คำต่อท้ายของตัวยึด (ค่าเริ่มต้นคือ "}") ตัวคั่นค่าตัวแยกค่าตัวยึด (ค่าเริ่มต้นคือ ":" ใช้เพื่อแยกคุณสมบัติและค่าเริ่มต้น) ส่วนประกอบยังสามารถตั้งค่าแอตทริบิวต์ที่ต้องมีอยู่และยังสามารถตรวจสอบได้ว่าแอตทริบิวต์ที่ต้องมีอยู่จริงหรือไม่ (หากไม่มีอยู่จะมีการโยนข้อยกเว้น) อินเทอร์เฟซเฉพาะมีดังนี้:
AbstractPropertyResolver Class:
คลาสการใช้งานนามธรรมสำหรับสองอินเทอร์เฟซข้างต้น มันใช้วิธีการทั้งหมดของอินเทอร์เฟซที่กำหนดค่าได้ เกี่ยวกับวิธีการอินเทอร์เฟซ PropertyResolver มี 3 วิธี getProperty ที่จำเป็นต้องใช้ในคลาสย่อย (วิธีการโอเวอร์โหลดอื่น ๆ เรียกวิธีการทั้ง 3 นี้):
String getProperty (คีย์สตริง); <t> t getProperty (คีย์สตริง, คลาส <t> targetType); <t> คลาส <t> getPropertyasclass (คีย์สตริง, คลาส <t> targetType);/*** คลาสปัจจุบันยังกำหนดวิธีนามธรรมเพิ่มเติมโดยตรง * วิธี GetProperty ทั่วไปจะแทนที่ตัวยึดตำแหน่งในค่ามูลค่าโดยค่าเริ่มต้นและส่งคืน */การป้องกันบทคัดย่อสตริง getProperTyasrawString (คีย์สตริง); สำหรับการเปลี่ยนผู้ถือครองสถานที่ให้บริการจะทำด้วยความช่วยเหลือของวัตถุผู้ช่วยผู้ถือทรัพย์สิน (คลาสเครื่องมือ) สองอสังหาริมทรัพย์สองวัตถุหนึ่งในสองวัตถุนี้เป็นโหมดที่เข้มงวด
PropertySourcesPropertyResolver คลาส:
คลาสนี้เป็นคลาสการใช้งานที่สมบูรณ์เพียงอย่างเดียวในระบบ ใช้การรวบรวมแหล่งที่มาของคุณสมบัติ Sources (รายการ <propertySource> รายการแหล่งที่มาของอสังหาริมทรัพย์ภายใน) เป็นแหล่งที่มาของค่าคุณสมบัติซ้ำผ่านแต่ละคุณสมบัติของ Source ตามลำดับและส่งคืนหากได้รับค่าคุณสมบัติที่ไม่ใช่ NULL