Skip to main content

Dùng Thư Viện Dozer

Có người viết thư hỏi tôi rằng có bao giờ tôi đã sử dụng một thư viện gọi là Dozer chưa? Mục đích hỏi của bạn chẳng qua là muốn tìm hiểu về Dozer.
 
Như vậy Dozer là gì ? 
 
Đó là một sản phẩm có mã nguồn mở, và được viết bằng Java giúp tạo ra các Java Bean dùng để sao chép data từ một đối tượng này đến một đối tượng khác. 
 
Trong thực tế tôi có dùng thư viện Dozer dùng làm phần đệm cho việc trao đổi và chuyển tải data giữa tầng Web services và công nghệ Flash dùng làm tầng front-end. Flash nhận data từ database theo dạng XML, và hiển thị chúng trên các screen viết bằng Flash. Sau đó nếu người dùng muốn lưu trữ các data vào database, thì các data trên Flash phải chuyển thành dạng XML sau đó biến chúng thành các Java Beans và gọi các phương thức định sẵn trong Web Services. Như vậy với quá trình vừa mới nói trên, thì từ lúc Flash thu thập các data (do người dùng gõ vào qua các GUI viết bằng Flash) và rồi chuyển chúng thành dạng XML, thì phải dùng công cụ XStream với mục đích là “biến” data theo dạng XML thành dạng Java Beans. Nhưng dạng Java Beans này khác với dạng Java Beans mà Web Services nhận, do đó, tôi phải dùng thêm Dozer với mục đích là copy phần data trong Java Beans nhận được từ phía Flash gởi và đưa chúng thành Java Beans theo dạng inputs của các phương thức  Web Services cần.  Đó là nét đại cương một ứng dụng Dozer vào trong kỹ nghệ lập trình.
 
Đến đây bạn cũng có thể tự hỏi rằng: Bạn dùng Java để tự viết lấy dùng đặc tính Reflection có trong Java để làm theo cách mà Dozer làm.  Đúng vậy, bạn có thể viết lấy. Nhưng khi ứng dụng của bạn lớn dần và phần copy các đối tượng Java không còn là 1 hay 2 class nữa mà là copy data từ đối tượng hình thành nhiều classes sang nhiều đôi tượng khác và chúng (data) này xen kẽ hoặc được định nghĩa theo nhiều lớp con nằm bên trong lớp cha (nested classes).  Nói một cách khác, khi cấu trúc data trong ứng dụng của bạn trở nên phức tạp, thì công việc tự viết lấy của bạn sẽ trở thành khó khăn nếu bạn không có thư viện đã được chuẩn hoá giúp bạn thực hiện và tránh lỗi không cần thiết trong quá trình phát triển ứng dụng.
 
Có thể tải thư viện Dozer theo đường dẫn này: http://dozer.sourceforge.net/
 
Phương Tân Biên
(Ngày 2 Tháng 11 Năm 2010)