Saya tidak yakin tentang perbedaannya. Saya menggunakan Hibernate dan, dalam beberapa buku, mereka menggunakan JavaBean dan POJO sebagai istilah yang dapat dipertukarkan. Saya ingin tahu apakah ada perbedaan, tidak hanya dalam konteks Hibernate, tetapi sebagai konsep umum.
sumber
Semua JavaBeans adalah POJO tetapi tidak semua POJO adalah JavaBeans.
JavaBean adalah objek Java yang memenuhi konvensi pemrograman tertentu:
sumber
Serializable
.Menurut Martin Fowler POJO adalah objek yang merangkum Business Logic sementara Bean (kecuali untuk definisi yang sudah dinyatakan dalam jawaban lain) sedikit lebih dari wadah untuk menyimpan data dan operasi yang tersedia pada objek hanya mengatur dan mendapatkan data.
sumber
POJO: Jika kelas dapat dieksekusi dengan JDK yang mendasarinya, tanpa dukungan pihak ketiga eksternal perpustakaan lainnya yang disebut POJO
JavaBean: Jika kelas hanya berisi atribut dengan accessors (setter dan getter) itu disebut javabeans. Kacang jawa pada umumnya tidak akan mengandung logika bisnis daripada yang digunakan untuk menyimpan beberapa data di dalamnya.
Semua orang Jawa adalah POJO tetapi semua POJO bukan orang Jawa
sumber
Pojo - Obyek java tua polos
kelas pojo adalah kelas biasa tanpa spesialisasi, kelas benar-benar longgar ditambah dari teknologi / kerangka kerja. kelas tidak mengimplementasikan dari teknologi / kerangka kerja dan tidak meluas dari teknologi / kerangka api kelas yang disebut kelas pojo.
kelas pojo dapat mengimplementasikan antarmuka dan memperluas kelas tetapi kelas super atau antarmuka seharusnya tidak menjadi teknologi / kerangka kerja.
Contoh:
1.
Kelas ABC tidak menerapkan atau memperluas dari teknologi / kerangka kerja itu sebabnya ini adalah kelas pojo.
2.
Kelas ABC memanjang dari api teknologi servlet itu sebabnya ini bukan kelas pojo.
3.
Kelas ABC mengimplementasikan dari rmi api itu sebabnya ini bukan kelas pojo.
4.
antarmuka ini adalah bagian dari bahasa java bukan bagian dari teknologi / framework.so ini adalah kelas pojo.
5.
di sini utas juga kelas bahasa java jadi ini juga kelas pojo.
6.
jika kelas Uji meluas atau mengimplementasikan dari teknologi / kerangka kerja maka ABC juga bukan kelas pojo karena mewarisi sifat-sifat kelas Uji. jika kelas Tes bukan kelas pojo maka kelas ABC juga bukan kelas pojo.
7.
sekarang titik ini merupakan kasus luar biasa
@Entity
adalah anotasi yang diberikan oleh hibernate api atau jpa api tetapi masih bisa kita sebut kelas ini sebagai kelas pojo. kelas dengan penjelasan yang diberikan dari teknologi / kerangka kerja disebut kelas pojo oleh kasus luar biasa ini.sumber
Spesialisasi tercantum di bawah ini dengan alasan
sumber
POJOS
dengan konvensi tertentu (pengambil / penyetel, konstruktor tanpa argumen publik, variabel pribadi) dan sedang beraksi (mis. digunakan untuk membaca data dengan formulir)JAVABEANS
.sumber
Singkatnya: persamaan dan perbedaan adalah:
Semua Kacang JAVA adalah POJO tetapi tidak semua POJO adalah Kacang JAVA.
sumber
Anda telah melihat definisi formal di atas, semuanya berharga.
Tapi jangan terlalu terpaku pada definisi. Mari kita lihat lebih dalam lagi rasa hal-hal di sini.
JavaBeans digunakan dalam aplikasi Enterprise Java, di mana pengguna sering mengakses data dan / atau kode aplikasi dari jarak jauh, yaitu dari server (melalui web atau jaringan pribadi) melalui jaringan. Oleh karena itu data yang terlibat harus dialirkan dalam format serial ke dalam atau keluar dari komputer pengguna - karenanya kebutuhan objek Java EE untuk mengimplementasikan antarmuka Serializable. Sebanyak ini sifat JavaBean tidak berbeda dengan objek aplikasi Java SE yang datanya dibaca dari, atau ditulis, sistem file. Menggunakan kelas Java secara andal melalui jaringan dari berbagai kombinasi mesin pengguna / OS juga menuntut adopsi konvensi untuk penanganannya. Oleh karena itu persyaratan untuk menerapkan kelas-kelas ini sebagai publik, dengan atribut pribadi, konstruktor tanpa argumen dan getter dan setter standar.
Aplikasi Java EE juga akan menggunakan kelas selain yang diimplementasikan sebagai JavaBeans. Ini dapat digunakan dalam memproses data masukan atau mengatur data keluaran tetapi tidak akan digunakan untuk objek yang ditransfer melalui jaringan. Karenanya pertimbangan di atas tidak perlu diterapkan pada mereka bar yang valid sebagai objek Java. Kelas-kelas yang terakhir ini disebut sebagai POJOs - Plain Old Java Objects.
Secara keseluruhan, Anda bisa melihat Java Beans hanya sebagai objek Java yang diadaptasi untuk digunakan melalui jaringan.
Ada banyak sekali hype - dan tidak sedikit humbug - di dunia perangkat lunak sejak 1995.
sumber