ฉันพยายามแปลง DO เป็น DTO โดยใช้ java และค้นหาเครื่องมืออัตโนมัติก่อนเริ่มเขียนเอง ฉันแค่อยากรู้ว่ามีเครื่องมือฟรีใด ๆ ที่เหมือนกันหรือไม่
ฉันพยายามแปลง DO เป็น DTO โดยใช้ java และค้นหาเครื่องมืออัตโนมัติก่อนเริ่มเขียนเอง ฉันแค่อยากรู้ว่ามีเครื่องมือฟรีใด ๆ ที่เหมือนกันหรือไม่
คำตอบ:
Dozer เป็น mapper Java Bean ไปยัง Java Bean ที่คัดลอกข้อมูลซ้ำจากวัตถุหนึ่งไปยังอีก โดยทั่วไป Java Beans เหล่านี้จะมีประเภทที่ซับซ้อนแตกต่างกัน
Dozer สนับสนุนการทำแผนที่คุณสมบัติอย่างง่ายการทำแผนที่ประเภทที่ซับซ้อนการทำแผนที่สองทิศทางการทำแผนที่โดยนัยที่ชัดเจนรวมถึงการทำแผนที่แบบเรียกซ้ำ ซึ่งรวมถึงแอตทริบิวต์การรวบรวมการแมปที่ต้องการการแมปที่ระดับองค์ประกอบด้วย
มีห้องสมุดอยู่แถวนั้น:
Commons-BeanUtils : ConvertUtils -> วิธีการยูทิลิตี้สำหรับการแปลงค่าสเกลาร์สตริงเป็นวัตถุของคลาสที่ระบุ, สตริงอาร์เรย์เป็นอาร์เรย์ของคลาสที่ระบุ
Commons-Lang : ArrayUtils -> การดำเนินการกับอาร์เรย์อาร์เรย์ดั้งเดิม (เช่น int []) และอาร์เรย์ wrapper ดั้งเดิม (เช่น Integer [])
กรอบงาน Spring : Spring ได้รับการสนับสนุนที่ยอดเยี่ยมสำหรับ PropertyEditors ซึ่งสามารถใช้ในการแปลง Objects เป็น / จาก Strings
Dozer : Dozer เป็นตัวแมปเปอร์ Java Bean ที่ทรงพลังและใช้งานง่ายที่จะทำการคัดลอกข้อมูลซ้ำจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง โดยทั่วไป Java Beans เหล่านี้จะมีประเภทที่ซับซ้อนแตกต่างกัน
ModelMapper : ModelMapper เป็นเฟรมเวิร์กการแม็พอ็อบเจ็กต์อัจฉริยะที่แม็พอ็อบเจ็กต์กับกันและกันโดยอัตโนมัติ มันใช้วิธีการที่ใช้หลักการประชุมเพื่อทำแผนที่วัตถุในขณะที่จัดเตรียม API การปรับโครงสร้างใหม่ที่ปลอดภัยสำหรับการจัดการกรณีการใช้งานเฉพาะ
MapStruct : MapStruct เป็นตัวสร้างโค้ดเวลาคอมไพล์สำหรับการแม็พ bean ส่งผลให้รวดเร็ว (ไม่มีการใช้การสะท้อนกลับหรือคล้ายกัน) การแม็พการพึ่งพาน้อยลงและการพิมพ์ที่ปลอดภัยชนิดที่รันไทม์
Orika : Orika ใช้การสร้างรหัสไบต์เพื่อสร้างการทำแผนที่อย่างรวดเร็วด้วยค่าใช้จ่ายน้อยที่สุด
เซลมา : คอมไพล์ไทม์โค้ด - ไดนาโมสำหรับการแมป
JMapper : การสร้าง Bean mapper โดยใช้ Annotation, XML หรือ API (ดูเหมือนว่าจะตายแล้วอัปเดตล่าสุดเมื่อ 2 ปีที่แล้ว)
Smooks : ตลับหมึก Smooks JavaBean ช่วยให้คุณสามารถสร้างและเติมข้อมูลวัตถุ Java จากข้อมูลข้อความของคุณ (เช่นผูกข้อมูล) (แนะนำโดยsuperfilinในความคิดเห็น) (ไม่อยู่ภายใต้การพัฒนาที่ใช้งานอยู่)
Commons-Convert : Commons-Convert มีจุดประสงค์เพื่อให้ห้องสมุดเดียวที่ทุ่มเทให้กับงานของการแปลงวัตถุประเภทหนึ่งไปยังอีกประเภทหนึ่ง ขั้นตอนแรกจะเน้นที่การแปลงเป็น Object เป็น String และ String to Object (ดูเหมือนว่าจะตายอัปเดตล่าสุด 2010)
Transmorph : Transmorph เป็นห้องสมุด java ฟรีที่ใช้ในการแปลงวัตถุ Java ชนิดหนึ่งเป็นวัตถุประเภทอื่น (มีลายเซ็นอื่นอาจแปร) (ดูเหมือนว่าจะตายอัปเดตล่าสุด 2013)
EZMorph : EZMorph เป็นไลบรารี java อย่างง่ายสำหรับการแปลงวัตถุเป็นวัตถุอื่น รองรับการแปลงแบบดั้งเดิมและวัตถุสำหรับอาร์เรย์หลายมิติและการแปลงด้วย DynaBeans (ดูเหมือนจะตายอัปเดตล่าสุดปี 2008)
Morph : Morph เป็นเฟรมเวิร์ก Java ที่ช่วยลดความสามารถในการทำงานร่วมกันภายในของแอ็พพลิเคชัน เมื่อข้อมูลไหลผ่านแอปพลิเคชันจะมีการแปลงหลายครั้ง Morph จัดเตรียมวิธีมาตรฐานในการปรับใช้การแปลงเหล่านี้ (ดูเหมือนว่าจะตายอัปเดตล่าสุด 2008)
Lorentz : Lorentz เป็นกรอบการแปลงแบบ object-to-object ทั่วไป มันมี API ง่าย ๆ ในการแปลงวัตถุ Java ประเภทหนึ่งเป็นวัตถุประเภทอื่น (ดูเหมือนจะตาย)
OTOM : ด้วย OTOM คุณสามารถคัดลอกข้อมูลจากวัตถุใด ๆ ไปยังวัตถุอื่นได้ ความเป็นไปได้ไม่มีที่สิ้นสุด ยินดีต้อนรับสู่ "Autumn" (ดูเหมือนจะตาย)
อีกอันหนึ่งคือ Orika - https://github.com/orika-mapper/orika
Orika เป็นเฟรมเวิร์กการแม็พ Java Bean ที่คัดลอกข้อมูลซ้ำ (จากความสามารถอื่น ๆ ) ซ้ำ ๆ จากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง มันจะมีประโยชน์มากเมื่อพัฒนาแอพพลิเคชั่นแบบหลายชั้น
Orika มุ่งเน้นไปที่การทำงานอัตโนมัติให้ได้มากที่สุดในขณะที่ให้การปรับแต่งผ่านการกำหนดค่าและส่วนขยายตามต้องการ
Orika ช่วยให้นักพัฒนาสามารถ:
- ทำแผนที่วัตถุที่ซับซ้อนและมีโครงสร้างอย่างลึกซึ้ง
- "แบน" หรือวัตถุ "ขยาย" โดยการแมปคุณสมบัติที่ซ้อนกันกับคุณสมบัติระดับบนสุดและในทางกลับกัน
- สร้าง mappers on-the-fly และใช้การปรับแต่งเพื่อควบคุมการทำแผนที่บางส่วนหรือทั้งหมด
- สร้างตัวแปลงสำหรับการควบคุมการแมปของชุดวัตถุเฉพาะที่ใดก็ได้ในกราฟวัตถุ - ตามประเภทหรือตามชื่อคุณสมบัติที่ระบุ
- จัดการพร็อกซีหรือวัตถุที่ได้รับการปรับปรุง (เช่นของ Hibernate หรือเฟรมเวิร์กจำลองต่าง ๆ )
- ใช้การทำแผนที่สองทิศทางกับการกำหนดค่าเดียว
- แมปอินสแตนซ์ของคลาสคอนกรีตที่เหมาะสมสำหรับคลาสนามธรรมเป้าหมายหรืออินเทอร์เฟซ
- จัดการการแมปย้อนกลับ
- จัดการกับการประชุมที่ซับซ้อนเกินข้อกำหนด JavaBean
Orika ใช้การสร้างรหัสไบต์เพื่อสร้างโปรแกรมแมปรวดเร็วด้วยค่าใช้จ่ายน้อยที่สุด
ModelMapperเป็นอีกหนึ่งห้องสมุดที่ควรค่าใช้จ่าย การออกแบบของ ModelMapper นั้นแตกต่างจากไลบรารี่อื่น ๆ
ตรวจสอบเว็บไซต์ ModelMapper สำหรับข้อมูลเพิ่มเติม:
ใช้ Apache คอมมอนส์ beanutils:
static void copyProperties(Object dest, Object orig)
คัดลอกค่าคุณสมบัติจาก bean ต้นทางไปยังปลายทาง bean สำหรับทุกกรณีที่ชื่อคุณสมบัติเหมือนกัน
ผมแนะนำให้คุณลองJMapper กรอบ
เป็น Java bean ไปยัง Java bean mapper ช่วยให้คุณสามารถดำเนินการผ่านข้อมูลแบบไดนามิกด้วยคำอธิบายประกอบและ / หรือ XML
ด้วย JMapper คุณสามารถ:
ฉันยินดีที่จะเพิ่มหมู่เป็นตัวเลือกถึงแม้ว่าฉันจะลำเอียงอย่างชัดเจน: http://geoffreywiseman.github.com/Moo/
มันง่ายมากที่จะใช้สำหรับกรณีง่าย ๆ เหมาะสมสำหรับกรณีที่ซับซ้อนมากขึ้นแม้ว่าจะมีบางพื้นที่ที่ฉันสามารถจินตนาการถึงการปรับปรุงให้ซับซ้อนยิ่งขึ้นไปอีก
คุณยังสามารถลองทำแผนที่กรอบงานตาม Dozer แต่ด้วยการประกาศการแมป Excel พวกเขามีเครื่องมือและคุณสมบัติเจ๋ง ๆ เพิ่มเติม ตรวจสอบที่http://openl-tablets.sf.net/mapper
new ObjectMapper().convertValue(...)
มีวิธีการ แจ็คสันยังมีการสนับสนุนคำอธิบายประกอบและคำอธิบายประกอบ - มิกซ์ดังนั้นฉันจึงคิดว่ามันเป็นตัวเลือกที่ดีมาก