Java POJO class – Plain Old Java Object

Do tej pory omawialiśmy i używaliśmy normalnych obiektów w Javie. W tym artykule poznamy specjalny typ obiektu POJO. POJO to skrót od Plain Old Java Object, który jest używany w celu zwiększenia możliwości ponownego użycia i czytelności programu w Javie. Omówimy, jak używać klasy POJO w Javie i dlaczego ważne jest, aby się jej nauczyć.

Utrzymując Cię na bieżąco z najnowszymi trendami technologicznymi, Dołącz do TechVidvan na Telegramie

Co to jest klasa POJO w Javie?

POJO oznacza Plain Old Java Object, który jest normalnym obiektem, który nie jest związany ze specjalnymi ograniczeniami. Są one związane tylko z pewnymi ograniczeniami w specyfikacji języka Java. Po prostu, POJO działa jako czysta struktura danych, która posiada metody getter i setter. Obiekty POJO nie wymagają żadnego classpath. POJO jest najczęściej używaną klasą w Javie, ponieważ jest bardzo łatwa do napisania i zrozumienia. Sun Microsystems wprowadził klasę POJO w Javie w EJB 3.0.

Klasa POJO może nadpisać pewne metody, takie jak Serializable lub również z klasy Object.

A POJO nie może wykonywać następujących czynności:

1. Klasa POJO nie może rozszerzać predefiniowanych klas takich jak HttpServlet, Arrays, Calendar, itp. Na przykład, jeśli napiszemy, public class MyClass extends javax.servlet.http.HttpServlet, to klasa MyClass nie może być uznana za klasę POJO.

2. Klasa POJO nie powinna zawierać predefiniowanych adnotacji. Na przykład, @Retention(RetentionPolicy.RUNTIME) public class MyClass{..} nie jest klasą POJO.

3. Klasa POJO nie może implementować predefiniowanych interfejsów. Na przykład klasa publiczna Test implementuje javax.ejb.EntityBean { … } nie może być uważana za klasę POJO.

Teraz zaimplementujmy klasę POJO w Javie.

Przykład klasy POJO

Klasa POJO ogólnie definiuje encję. Na przykład, jeśli chcesz klasę Intern to możesz stworzyć POJO w następujący sposób:

// Intern POJO class to represent entity Internpublic class Intern { // default field String name; // public field public String role; // private field private double salary; //arg-constructor to initialize fields public Intern(String name, String role, double salary) { this.name = name; this.role = role; this.salary = salary; } // getter method for name public String getName() { return name; } // getter method for role public String getRole() { return role; } // getter method for salary public Double getSalary() { return salary; }}

Powyższy przykład wyraźnie pokazuje dobrze zdefiniowaną klasę POJO. W tym przykładzie można zauważyć, że modyfikatory dostępu do pól nie są ograniczone. Mogą one mieć dowolne modyfikatory dostępu, takie jak public, private, default lub protected. Można również zauważyć, że w klasie POJO nie ma potrzeby dodawania żadnego konstruktora.

Klasy POJO możemy używać w dowolnym kodzie Java. Klasa POJO nie jest związana z frameworkiem. Ale nie możemy zaimplementować tej klasy POJO z żadnymi prawdziwymi konwencjami, aby zmienić stan klasy.

POJO zachowuje się jak obiekt, który zawiera logikę biznesową aplikacji. Poniższy rysunek przedstawia działanie klasy POJO. Z obrazu widać wyraźnie, że kontroler wchodzi w interakcję z logiką biznesową. Logika biznesowa z kolei wchodzi w interakcję z klasą POJO w celu uzyskania dostępu do bazy danych.

Czym są Java Beans?

Java Beans są specjalnym typem POJO. Istnieją jednak pewne ograniczenia dla fasoli Java, aby stać się POJO. Ograniczenia te są następujące:

1. Wszystkie JavaBeans mogą być POJO, ale wszystkie klasy POJO nie mogą być Java Beans.

2. Java Beans powinna implementować interfejs Serializable.

3. Wszystkie pola Java Beans powinny być prywatne, aby zapewnić pełną kontrolę nad polami.

4. Wszystkie pola powinny mieć albo metody getter lub setter, albo obie z nich.

5. W beanie musi istnieć konstruktor no-arg.

6. Dostęp do pól możemy uzyskać tylko przez konstruktor lub getter setters.

Kod do zrozumienia JavaBeans

package com.techvidvan.pojoclass;import java.io. * ;class Student implements java.io.Serializable { private int id; private String name; public Student() {} public void setId(int id) { this.id = id; } public int getId() { return id; } public void setName(String name) { this.name = name; } public String getName() { return name; }}public class Test { public static void main(String args) { Student s = new Student(); //object is created s.setName("Rita"); //setting value to the object System.out.println("Name of the student is: " + s.getName()); }}

Output:
Nazwisko studenta to: Rita

Java POJO Class vs Java Bean

Teraz, gdy omówiliśmy zarówno klasę POJO, jak i Java beans, omówmy różnice między nimi:

POJO JAVA BEAN
Nie ma żadnych ograniczeń dla klasy POJO poza tymi wymuszonymi przez język specyfikacji Java. Java Bean jest specjalną klasą POJO, która ma pewne ograniczenia.
Klasa POJO nie zapewnia dużej kontroli nad polami. Java Bean zapewnia całkowitą kontrolę nad członkami.
Klasa POJO może, ale nie musi implementować interfejsu Serializable. Klasa Java Bean musi implementować interfejs Serializable.
Możemy bezpośrednio uzyskać dostęp do pól przez ich nazwy Możemy uzyskać dostęp do pól wewnątrz Java Bean tylko przez metody getters i setters.
Dla pól może istnieć dowolny z modyfikatorów dostępu. Pola w Java Beans muszą być tylko prywatne.
W klasie POJO może, ale nie musi istnieć konstruktor no-arg. W klasie Java Beans musi być konstruktor no-arg.
Klasy POJO używamy, gdy nie ma potrzeby nakładania ograniczeń na pola i może być do nich pełny dostęp. Korzystamy z Java Beans, gdy nie chcemy dawać pełnego dostępu do encji.

Podsumowanie

Poznaliśmy klasę POJO w Javie, która zwiększa czytelność kodu. Omówiliśmy również byty rzeczywiste. Klasa JavaBeans jest prawie podobna do klasy POJO w Javie, ale ma też pewne różnice, które omówiliśmy w tym artykule. Mamy nadzieję, że zrozumiałeś działanie i implementację klasy POJO w Javie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.