Java POJO class – Plain Old Java Object
Tot nu toe hebben we de normale objecten in Java besproken en gebruikt. In dit artikel zullen we leren een speciaal type object POJO. POJO staat voor Plain Old Java Object, dat wordt gebruikt om de herbruikbaarheid en leesbaarheid van het Java programma te vergroten. We zullen bespreken hoe Java POJO-klasse te gebruiken en waarom het belangrijk is om het te leren.
U op de hoogte houden van de laatste technologische trends, TechVidvan op Telegram
Wat is POJO-klasse in Java?
POJO staat voor Plain Old Java Object, dat is een normaal object dat niet is gebonden aan speciale beperkingen. Ze zijn alleen gebonden aan enkele beperkingen op Java Language Specificaties. Eenvoudig, POJO fungeert als een zuivere gegevensstructuur die getter en setter methodes heeft. POJO-objecten hebben geen classpath nodig. POJO is de meest gebruikte klasse in Java omdat ze zeer gemakkelijk te schrijven en te begrijpen is. Sun Microsystems introduceerde de POJO-klasse in Java in EJB 3.0.
De POJO-klasse kan bepaalde methoden overriden, zoals Serializable of ook uit de Object-klasse.
Een POJO mag het volgende niet doen:
1. Een POJO-klasse mag de voorgedefinieerde klassen, zoals HttpServlet, Arrays, Calendar, enz. niet uitbreiden. Bijvoorbeeld, als we schrijven, public class MyClass extends javax.servlet.http.HttpServlet, dan kan de klasse MyClass niet worden beschouwd als POJO-klasse.
2. Een POJO-klasse mag geen vooraf gespecificeerde annotaties bevatten. Bijvoorbeeld, @Retention(RetentionPolicy.RUNTIME) public class MyClass{..} is geen POJO-klasse.
3. Een POJO-klasse kan geen voorgedefinieerde interfaces implementeren. Bijvoorbeeld public class Test implementeert javax.ejb.EntityBean { … } kan niet worden beschouwd als een POJO-klasse.
Nu, laten we POJO-klasse implementeren in Java.
Voorbeeld van POJO-klasse
POJO-klasse definieert over het algemeen een entiteit. Als u bijvoorbeeld een Intern-klasse wilt, kunt u als volgt een POJO maken:
// 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; }}
Het bovenstaande voorbeeld laat duidelijk een goed gedefinieerde POJO-klasse zien. In dit voorbeeld zie je dat de toegangsmodifiers van de velden niet beperkt zijn. Zij kunnen alle toegangsmodifiers hebben zoals public, private, default, of protected. U kunt ook opmerken dat in POJO klasse is er geen noodzaak om een constructor.
We kunnen de POJO klasse te gebruiken in elke Java-code. POJO-klasse is niet gebonden aan het kader. Maar we kunnen niet implementeren deze POJO-klasse met een echte conventies om de toestand van de class.
POJO gedraagt zich als een object dat de business logica van de aanvraag opneemt. De volgende figuur toont de werking van een POJO klasse. Uit de afbeelding kunt u duidelijk zien dat de controller interageert met de business logica. De bedrijfslogica heeft op zijn beurt weer interactie met de POJO-klasse om toegang te krijgen tot de database.
Wat zijn Java Beans?
Java Beans zijn een speciaal type POJO’s. Maar er zijn enkele beperkingen voor Java beans om POJO te worden. Deze beperkingen zijn als volgt:
1. Alle JavaBeans kunnen POJO’s zijn, maar niet alle POJO-klassen kunnen Java Beans zijn.
2. Java Beans moeten de Serializable-interface implementeren.
3. Alle velden van de Java Beans moeten private zijn om volledige controle over de velden te verschaffen.
4. Alle velden moeten getter- of setter-methoden of beide hebben.
5. Er moet een no-arg constructor zijn in een bean.
6. We kunnen de velden alleen benaderen via constructor of getter setters.
Code to understand 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:
Naam van de student is: Rita
Java POJO-klasse vs Java Bean
Nu we zowel POJO-klasse als Java beans hebben besproken, laten we de verschillen tussen beide bespreken:
POJO | JAVA BEAN |
Er zijn geen beperkingen voor de POJO-klasse, behalve die welke door de Java Specificatietaal worden afgedwongen. | Java Bean is een speciale POJO-klasse die enkele beperkingen kent. |
POJO-klasse biedt niet veel controle over de velden. | Java Bean biedt volledige controle over de leden. |
POJO-klasse kan wel of niet een Serializable-interface implementeren. | Een Java Bean moet een Serializable-interface implementeren. |
We hebben direct toegang tot de velden met hun namen | We hebben alleen toegang tot de velden in de Java Bean via methoden als getters en setters. |
Er kan een van de toegang modifiers voor velden. | Velden in Java Beans moet alleen private. |
Er kan wel of niet een no-arg constructor in de POJO klasse. | Er moet een no-arg constructor in Java Beans. |
We gebruiken de POJO-klasse wanneer er geen noodzaak is om beperkingen op de velden en er kan volledige toegang over de velden. | We gebruiken Java Beans wanneer we geen volledige toegang tot de entiteiten willen geven. |
Conclusie
We hebben de POJO-klasse in Java geleerd die de leesbaarheid van de code verbetert. We hebben ook entiteiten uit het echte leven besproken. De JavaBeans is bijna gelijk aan de Java POJO klasse maar het heeft ook enkele verschillen die we in dit artikel hebben besproken. We hopen dat je de werking en implementatie van de POJO klasse in Java hebt begrepen.