DTOS Menulis dengan Java8, Lombok dan Java14 +

DTOS Menulis dengan Java8, Lombok dan Java14 +
[ad_1]
Dalam artikel ini, saya akan mencoba membantu Anda memahami bagaimana Java memperbarui versi dan penggunaan seperangkat perpustakaan yang baik dapat mengurangi upaya pengembangan dan kode BUISSIER. Dalam organisasi, kami cenderung menggunakan versi untuk periode yang lebih lama karena peningkatan versi perangkat lunak tidak cepat dan membutuhkan tes -Depth.
Namun, karena pemikiran ini, kami biasanya gagal menggunakan fitur baru yang tersedia dengan versi baru, karena pemasok perangkat lunak terus -menerus menempatkan fitur mereka.
Ambil contoh penulisan DTOS (objek transfer data). Di Java, untuk menyimpan data yang akan ditransmisikan pada lapisan yang berbeda, kami membuat objek data yang disebut DTOS. Menulis DTO yang benar melibatkan memasukkan elemen -elemen berikut dalam suatu kelas.
- Definisi bidang data
- Getters dan setter
- Produsen yang dikonfigurasi
- Jika konstruksi objek yang kompleks, maka gunakan pola pabrikan
- Menulis metode tostring
- Override adalah sama dan kode hash
Sekarang pertimbangkan semua poin di atas dan lihat bagaimana DTO ditulis dan sekarang, bagaimana mereka dapat dibuat dengan lebih sedikit kode menggunakan perpustakaan dan Java 14+.
Penggunaan kelas Java sederhana (sebelum Java 14 dan Lombok)
import java.util.Objects;
/**
* Represents the details of an employee.
*/
public class EmployeeDetail {
private String employeeId;
private String employeeName;
private String employeeAddress;
/**
* Constructs an EmployeeDetail with the specified ID and name.
*
* @param employeeId the ID of the employee
* @param employeeName the name of the employee
*/
public EmployeeDetail(String employeeId, String employeeName) {
this.employeeId = employeeId;
this.employeeName = employeeName;
}
/**
* Sets the address of the employee.
*
* @param employeeAddress the address of the employee
* @return the updated EmployeeDetail object
*/
public EmployeeDetail withAddress(String employeeAddress) {
this.employeeAddress = employeeAddress;
return this;
}
/**
* Returns the ID of the employee.
*
* @return the employee ID
*/
public String getEmployeeId() {
return employeeId;
}
/**
* Returns the name of the employee.
*
* @return the employee name
*/
public String getEmployeeName() {
return employeeName;
}
/**
* Returns the address of the employee.
*
* @return the employee address
*/
public String getEmployeeAddress() {
return employeeAddress;
}
/**
* Indicates whether some other object is "equal to" this one.
*
* @param o the reference object with which to compare
* @return true if this object is the same as the obj argument; false otherwise
*/
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
EmployeeDetail that = (EmployeeDetail) o;
return Objects.equals(employeeId, that.employeeId) &&
Objects.equals(employeeName, that.employeeName) &&
Objects.equals(employeeAddress, that.employeeAddress);
}
/**
* Returns a hash code value for the object.
*
* @return a hash code value for this object
*/
@Override
public int hashCode() {
return Objects.hash(employeeId, employeeName, employeeAddress);
}
/**
* Returns a string representation of the object.
*
* @return a string representation of the object
*/
@Override
public String toString() {
return "EmployeeDetail{" +
"employeeId='" + employeeId + '\'' +
", employeeName="" + employeeName + "\'' +
", employeeAddress="" + employeeAddress + "\'' +
'}';
}
}
Di sini, Anda dapat melihat bahwa Anda menulis hampir semuanya dari bidang, produsen, pengambil / setter dan objek pabrikan, tostring dan kode hash.
Sejak Lombok Library lahir, kode ini telah dikurangi menjadi beberapa baris karena memberikan banyak anotasi, yang membantu pengembang mengurangi kode penulisan Buissier seperti Getter / Setter, Produsen, Tostring, dll. Ambil yang berikut, misalnya.
Penggunaan Perpustakaan Lombok
import lombok.*;
@Getter
@Setter
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class EmployeeDetail {
private String employeeId;
private String employeeName;
private String employeeAddress;
public EmployeeDetail(String employeeId, String employeeName, String employeeAddress) {
this.employeeId = employeeId;
this.employeeName = employeeName;
this.employeeAddress = employeeAddress;
}
}
Sekarang, kode telah sangat berkurang, dan Anda hanya fokus pada definisi bidang yang diperlukan, dan sisa hal -hal didukung oleh Lombok. Cukup gunakan anotasi yang tepat dan perpustakaan akan melakukan sisa pekerjaan. Setelah menyusun kode, itu akan menghasilkan semua metode yang diperlukan di kelas yang dihasilkan.
Saya menggunakan Lombok untuk sementara waktu untuk mengurangi kode kuali. Namun, untungnya saya terkejut melihat catatan, yang diperkenalkan di Java 14 dan versi yang lebih tinggi. Saat ini, saya menggunakan Java 21, dan di bawah ini adalah ekstrak kode untuk menulis kelas yang setara sebagai DTO (disebutkan dalam contoh pertama).
Penggunaan Java 21: Kelas Perekaman
/**
* Represents the details of an employee.
*/
public record EmployeeDetail(String employeeId, String employeeName, String employeeAddress) {
}
Bukankah itu keren? Anda baru saja menyebutkan bidang data Anda dalam satu baris, dan JDK mengurus sisa informasi. Di sini, kelas rekaman akan secara otomatis menghasilkan metode pabrikan, ToString (), Equal dan HashCode untuk Anda, dan Anda tidak punya apa -apa untuk ditulis.
Sekarang misalkan Anda perlu membuat instantiate perekaman dan mendapatkan data, Anda hanya perlu melakukan hal berikut.
public class Main {
public static void main(String[] args) {
EmployeeDetail employee = new EmployeeDetail("12345", "Nitesh Gupta", "XYZ");
// Accessing the data
String id = employee.employeeId();
String name = employee.employeeName();
String address = employee.employeeAddress();
}
}
Kesimpulan
Saran saya adalah mulai meningkatkan aplikasi Anda dengan versi Java terbaru, untuk menggunakan fitur yang tersedia untuk mengurangi upaya pengembangan dan menulis kode bersih.
Happy Coding!
[ad_2]