Java POJO-klass – Plain Old Java Object
Intill nu har vi diskuterat och använt vanliga objekt i Java. I den här artikeln kommer vi att lära oss en speciell typ av objekt POJO. POJO står för Plain Old Java Object och används för att öka återanvändbarheten och läsbarheten i Javaprogrammet. Vi kommer att diskutera hur man använder Java POJO-klassen och varför det är viktigt att lära sig den.
Håller dig uppdaterad med de senaste tekniktrenderna, gå med i TechVidvan på Telegram
Vad är POJO-klassen i Java?
POJO står för Plain Old Java Object, vilket är ett normalt objekt som inte är bundet till speciella restriktioner. De är endast bundna med vissa begränsningar i Javas språkspecifikationer. POJO fungerar helt enkelt som en ren datastruktur som har getter- och settermetoder. POJO-objekt kräver ingen klassväg. POJO är den mest använda klassen i Java eftersom den är mycket lätt att skriva och förstå. Sun Microsystems introducerade POJO-klassen i Java i EJB 3.0.
POJO-klassen kan åsidosätta vissa metoder som Serializable eller även från Object-klassen.
En POJO får inte göra följande:
1. En POJO-klass får inte förlänga fördefinierade klasser som HttpServlet, Arrays, Calendar osv. Om vi till exempel skriver, public class MyClass extends javax.servlet.http.HttpServlet, kan klassen MyClass inte betraktas som POJO-klass.
2. En POJO-klass får inte innehålla i förväg specificerade annotationer. Till exempel @Retention(RetentionPolicy.RUNTIME) public class MyClass{..} är inte en POJO-klass.
3. En POJO-klass kan inte implementera fördefinierade gränssnitt. Till exempel public class Test implements javax.ejb.EntityBean { … } kan inte betraktas som en POJO-klass.
Nu ska vi implementera en POJO-klass i Java.
Exempel på POJO-klass
POJO-klass definierar i allmänhet en enhet. Om du till exempel vill ha en Intern-klass kan du skapa en POJO enligt följande:
// 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; }}
Ovanstående exempel visar tydligt en väldefinierad POJO-klass. I det här exemplet kan du se att åtkomstmodifieringarna för fälten inte är begränsade. De kan ha vilka åtkomstmodifierare som helst, t.ex. public, private, default eller protected. Du kan också notera att i POJO-klassen finns det inget behov av att lägga till någon konstruktör.
Vi kan använda POJO-klassen i vilken Java-kod som helst. POJO-klassen är inte bunden till ett ramverk. Men vi kan inte implementera denna POJO-klass med några riktiga konventioner för att ändra klassens tillstånd.
POJO beter sig som ett objekt som innehåller applikationens affärslogik. Följande figur visar hur en POJO-klass fungerar. I bilden kan man tydligt se att controllern interagerar med affärslogiken. Affärslogiken interagerar i sin tur med POJO-klassen för att få tillgång till databasen.
Vad är Java Beans?
Java Beans är en speciell typ av POJOs. Men det finns vissa begränsningar för Java beans att bli POJO. Dessa begränsningar är följande:
1. Alla Java Beans kan vara POJO:s men alla POJO-klasser kan inte vara Java Beans.
2. Java Beans bör implementera gränssnittet Serializable.
3. Alla fält i Java Beans bör vara privata för att ge fullständig kontroll över fälten.
4. Alla fält bör ha antingen getter- eller setter-metoder eller båda.
5. Det måste finnas en konstruktör utan argument i en bean.
6. Vi kan endast komma åt fälten genom konstruktör eller getter-sättare.
Kod för att förstå 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:
Namnet på studenten är: Rita
Java POJO-klass vs Java Bean
Nu när vi har diskuterat både POJO-klass och Java beans, låt oss diskutera skillnaderna mellan dem:
POJO | JAVA BEAN |
Det finns inga begränsningar för POJO-klassen förutom de som tvingas fram av Java Specification language. | Java Bean är en speciell POJO-klass som har vissa begränsningar. |
POJO-klassen ger inte mycket kontroll över fälten. | Java Bean ger fullständig kontroll över medlemmarna. |
POJO-klassen kan implementera eller inte implementera ett serialiserbart gränssnitt. | En Java Bean måste implementera ett serialiserbart gränssnitt. |
Vi kan få direkt åtkomst till fälten genom deras namn | Vi kan få åtkomst till fälten inuti Java Bean endast genom getters och setters metoder. |
Det kan finnas alla åtkomstmodifierare för fält. | Fälten i Java Beans får endast vara privata. |
Det kan finnas eller inte finnas en no-arg-konstruktör i POJO-klassen. | Det måste finnas en no-arg-konstruktör i Java Beans. |
Vi använder POJO-klassen när det inte finns något behov av att sätta begränsningar på fälten och det kan finnas fullständig tillgång till fälten. | Vi använder Java Beans när vi inte vill ge fullständig åtkomst till enheterna. |
Slutsats
Vi har lärt oss POJO-klassen i Java som ökar läsbarheten i koden. Vi diskuterade också verkliga entiteter. JavaBeans är nästan lik Java POJO-klassen men den har också vissa skillnader som vi diskuterade i den här artikeln. Vi hoppas att du kanske har förstått hur POJO-klassen fungerar och hur den implementeras i Java.