Tôi đang cố gắng chuyển đổi DO thành DTO bằng java và tìm kiếm công cụ tự động trước khi bắt đầu tự viết. Tôi chỉ muốn biết nếu có bất kỳ công cụ miễn phí có sẵn cho cùng.
Tôi đang cố gắng chuyển đổi DO thành DTO bằng java và tìm kiếm công cụ tự động trước khi bắt đầu tự viết. Tôi chỉ muốn biết nếu có bất kỳ công cụ miễn phí có sẵn cho cùng.
Câu trả lời:
Bạn có thể thử Dozer .
Dozer là một trình ánh xạ Java Bean sang Java Bean, sao chép đệ quy dữ liệu từ đối tượng này sang đối tượng khác. Thông thường, các loại đậu Java này sẽ có các loại phức tạp khác nhau.
Dozer hỗ trợ ánh xạ thuộc tính đơn giản, ánh xạ kiểu phức tạp, ánh xạ hai hướng, ánh xạ ẩn rõ ràng, cũng như ánh xạ đệ quy. Điều này bao gồm các thuộc tính bộ sưu tập ánh xạ cũng cần ánh xạ ở cấp độ phần tử.
Có một số thư viện xung quanh đó:
Commons-BeanUtils : ConvertUtils -> Các phương thức tiện ích để chuyển đổi các giá trị vô hướng Chuỗi thành các đối tượng của Lớp được chỉ định, mảng Chuỗi thành mảng của Lớp được chỉ định.
Commons-Lang : ArrayUtils -> Hoạt động trên mảng, mảng nguyên thủy (như int []) và mảng trình bao bọc nguyên thủy (như Integer []).
Khung công tác mùa xuân : Spring có một hỗ trợ tuyệt vời cho PropertyEditor, cũng có thể được sử dụng để chuyển đổi Đối tượng thành / từ Chuỗi.
Dozer : Dozer là một trình ánh xạ Java Bean sang Java Bean mạnh mẽ nhưng đơn giản để sao chép dữ liệu từ đối tượng này sang đối tượng khác. Thông thường, các loại đậu Java này sẽ có các loại phức tạp khác nhau.
ModelMapper : ModelMapper là một khung ánh xạ đối tượng thông minh tự động ánh xạ các đối tượng với nhau. Nó sử dụng một cách tiếp cận dựa trên quy ước để ánh xạ các đối tượng trong khi cung cấp một API an toàn tái cấu trúc đơn giản để xử lý các trường hợp sử dụng cụ thể.
MapSturation : MapSturation là một trình tạo mã thời gian biên dịch cho ánh xạ bean, dẫn đến nhanh (không sử dụng phản xạ hoặc tương tự), mã ánh xạ phụ thuộc và loại an toàn khi chạy.
Orika : Orika sử dụng việc tạo mã byte để tạo ra các trình ánh xạ nhanh với chi phí tối thiểu.
Selma : Trình tạo mã thời gian biên dịch cho ánh xạ
JMapper : Tạo trình ánh xạ Bean bằng cách sử dụng Chú thích, XML hoặc API (dường như đã chết, được cập nhật lần cuối 2 năm trước)
Smooks : Smooks JavaBean Cartridge cho phép bạn tạo và điền các đối tượng Java từ dữ liệu tin nhắn của bạn (tức là liên kết dữ liệu với) (được đề xuất bởi superfilin trong các bình luận). (Không còn được phát triển tích cực)
Commons-Convert : Commons-Convert nhằm mục đích cung cấp một thư viện duy nhất dành riêng cho nhiệm vụ chuyển đổi một đối tượng thuộc loại này sang loại khác. Giai đoạn đầu tiên sẽ tập trung vào chuyển đổi Object to String và String to Object. (dường như đã chết, bản cập nhật cuối 2010)
Transmorph : Transmorph là một thư viện java miễn phí được sử dụng để chuyển đổi một đối tượng Java thuộc một loại thành một đối tượng thuộc loại khác (với một chữ ký khác, có thể được tham số hóa). (dường như đã chết, bản cập nhật cuối cùng 2013)
EZMorph : EZMorph là thư viện java đơn giản để chuyển đổi một đối tượng sang một đối tượng khác. Nó hỗ trợ các phép biến đổi cho nguyên thủy và Đối tượng, cho các mảng và biến đổi đa chiều với DynaBeans (dường như đã chết, cập nhật lần cuối năm 2008)
Morph : Morph là một khung công tác Java giúp giảm khả năng tương tác bên trong của một ứng dụng. Khi thông tin chảy qua một ứng dụng, nó trải qua nhiều biến đổi. Morph cung cấp một cách tiêu chuẩn để thực hiện các biến đổi này. (dường như đã chết, bản cập nhật cuối cùng 2008)
Lorentz : Lorentz là một khung chuyển đổi đối tượng chung thành đối tượng. Nó cung cấp một API đơn giản để chuyển đổi một đối tượng Java thuộc loại này thành đối tượng của loại khác. (dường như đã chết)
OTOM : Với OTOM, bạn có thể sao chép mọi dữ liệu từ bất kỳ đối tượng nào sang bất kỳ đối tượng nào khác. Các khả năng là vô tận. Chào mừng đến với "Mùa thu". (dường như đã chết)
Một cái khác là Orika - https://github.com/orika-mapper/orika
Orika là một khung công tác ánh xạ Java Bean sao chép dữ liệu (trong số các khả năng khác) dữ liệu từ đối tượng này sang đối tượng khác. Nó có thể rất hữu ích khi phát triển các ứng dụng nhiều lớp.
Orika tập trung vào việc tự động hóa càng nhiều càng tốt, đồng thời cung cấp tùy chỉnh thông qua cấu hình và tiện ích mở rộng khi cần thiết.
Orika cho phép nhà phát triển:
- Bản đồ các đối tượng phức tạp và có cấu trúc sâu
- Các đối tượng "Làm phẳng" hoặc "Mở rộng" bằng cách ánh xạ các thuộc tính lồng vào các thuộc tính cấp cao nhất và ngược lại
- Tạo trình ánh xạ nhanh chóng và áp dụng các tùy chỉnh để kiểm soát một số hoặc tất cả ánh xạ
- Tạo các trình chuyển đổi để kiểm soát hoàn toàn việc ánh xạ một tập hợp các đối tượng cụ thể ở bất kỳ đâu trong biểu đồ đối tượng - theo loại hoặc thậm chí theo tên thuộc tính cụ thể
- Xử lý các proxy hoặc các đối tượng nâng cao (như các đối tượng của Hibernate hoặc các khung giả khác nhau)
- Áp dụng ánh xạ hai chiều với một cấu hình
- Ánh xạ tới các thể hiện của một lớp cụ thể thích hợp cho một lớp hoặc giao diện trừu tượng đích
- Xử lý ánh xạ ngược
- Xử lý các quy ước phức tạp ngoài các thông số kỹ thuật của JavaBean.
Orika sử dụng việc tạo mã byte để tạo các trình ánh xạ nhanh với chi phí tối thiểu.
ModelMapper là một thư viện đáng để kiểm tra. Thiết kế của ModelMapper khác với các thư viện khác ở chỗ:
Kiểm tra trang ModelMapper để biết thêm thông tin:
Sử dụng Apache commons beanutils:
static void copyProperties(Object dest, Object orig)
-Copy giá trị thuộc tính từ bean gốc đến bean đích cho tất cả các trường hợp tên thuộc tính giống nhau.
Có thêm một công cụ / khung công tác ánh xạ Java Nomin: http://nomin.sourceforge.net .
Tôi khuyên bạn nên thử JMapper Framework .
Nó là một trình ánh xạ đậu Java sang Java bean, cho phép bạn thực hiện việc truyền dữ liệu một cách linh hoạt với các chú thích và / hoặc XML.
Với JMapper, bạn có thể:
Tôi rất vui khi thêm Moo làm tùy chọn, mặc dù rõ ràng tôi thiên về nó: http://geoffreywiseman.github.com/Moo/
Nó rất dễ sử dụng cho các trường hợp đơn giản, có khả năng hợp lý cho các trường hợp phức tạp hơn, mặc dù vẫn còn một số lĩnh vực mà tôi có thể tưởng tượng việc tăng cường nó cho những sự phức tạp hơn nữa.
Bạn cũng có thể thử khung ánh xạ dựa trên Dozer, nhưng với khai báo ánh xạ Excel. Họ đã có một số công cụ và các tính năng thú vị bổ sung. Kiểm tra tại http://openl-tablets.sf.net/mapper
new ObjectMapper().convertValue(...)
. Jackson cũng có hỗ trợ cho chú thích và chú thích-mixins nên tôi thấy đó là một lựa chọn rất tốt.