What is pojo class in java

Что такое класс POJO?

В этом кратком руководстве мы рассмотрим определение «Обычный старый объект Java» или сокращенно POJO.

Мы рассмотрим, как POJO сравнивается с JavaBean, и как может быть полезно преобразование наших POJO в JavaBeans.

2. Обычные старые объекты Java​

2.1. Что такое ПОЖО ?​

Когда мы говорим о POJO, мы описываем простой тип без ссылок на какие-либо конкретные фреймворки. POJO не имеет соглашения об именах для наших свойств и методов.

Давайте создадим базового сотрудника POJO. У него будет три свойства; имя, фамилия и дата начала:

 public class EmployeePojo     public String firstName;   public String lastName;   private LocalDate startDate;    public EmployeePojo(String firstName, String lastName, LocalDate startDate)    this.firstName = firstName;   this.lastName = lastName;   this.startDate = startDate;   >    public String name()    return this.firstName + " " + this.lastName;   >    public LocalDate getStart()    return this.startDate;   >   > 

Этот класс может использоваться любой программой Java, поскольку он не привязан к какой-либо структуре.

Но мы не следуем никакому реальному соглашению по созданию, доступу или изменению состояния класса.

Это отсутствие условности вызывает две проблемы:

Во-первых, это увеличивает кривую обучения для программистов, пытающихся понять, как его использовать.

Во- вторых, это может ограничить способность фреймворка отдавать предпочтение соглашению, а не конфигурации, понимать, как использовать класс, и расширять его функциональность.

Чтобы изучить этот второй момент, давайте поработаем с EmployeePojo , используя отражение. Таким образом, мы начнем находить некоторые из его ограничений.

2.2. Отражение с POJO​

 dependency>   groupId>commons-beanutilsgroupId>   artifactId>commons-beanutilsartifactId>   version>1.9.4version>   dependency> 

А теперь давайте проверим свойства нашего POJO:

 ListString> propertyNames =   PropertyUtils.getPropertyDescriptors(EmployeePojo.class).stream()   .map(PropertyDescriptor::getDisplayName)   .collect(Collectors.toList()); 

Если бы нам нужно было вывести в консоль имена свойств , мы бы увидели только:

Здесь мы видим, что мы получаем start только как свойство класса. PropertyUtils не удалось найти два других.

Мы бы увидели тот же результат, если бы использовали другие библиотеки, такие как Jackson , для обработки EmployeePojo.

В идеале мы должны увидеть все наши свойства: firstName , lastName и startDate. И хорошая новость заключается в том, что многие библиотеки Java по умолчанию поддерживают то, что называется соглашением об именах JavaBean.

3. JavaBeans​

3.1. Что такое JavaBean ?​

JavaBean по-прежнему является POJO, но вводит строгий набор правил его реализации:

  • Уровни доступа — наши свойства являются частными, и мы выставляем геттеры и сеттеры
  • Имена методов — наши геттеры и сеттеры следуют соглашению getX и setX (в случае логического значения isX может использоваться для геттера)
  • Конструктор по умолчанию — должен присутствовать конструктор без аргументов, чтобы экземпляр можно было создать без предоставления аргументов, например, во время десериализации.
  • Serializable — реализация интерфейса Serializable позволяет нам хранить состояние

3.2. EmployeePojo как JavaBean​

Итак, давайте попробуем преобразовать EmployeePojo в JavaBean:

 public class EmployeeBean implements Serializable     private static final long serialVersionUID = -3760445487636086034L;   private String firstName;   private String lastName;   private LocalDate startDate;    public EmployeeBean()    >    public EmployeeBean(String firstName, String lastName, LocalDate startDate)    this.firstName = firstName;   this.lastName = lastName;   this.startDate = startDate;   >    public String getFirstName()    return firstName;   >    public void setFirstName(String firstName)    this.firstName = firstName;   >    // additional getters/setters    > 

3.3. Отражение с помощью JavaBean​

Когда мы проверяем наш bean-компонент с отражением, мы получаем полный список свойств:

[firstName, lastName, startDate] 

4. Компромиссы при использовании JavaBeans​

Итак, мы показали, как полезны JavaBeans. Имейте в виду, что каждый выбор дизайна сопряжен с компромиссами.

Когда мы используем JavaBeans, мы также должны помнить о некоторых потенциальных недостатках:

  • Изменяемость — наши JavaBeans изменяемы из-за их методов установки — это может привести к проблемам параллелизма или согласованности.
  • Шаблон — мы должны ввести геттеры для всех свойств и сеттеры для большинства, многое из этого может быть ненужным.
  • Конструктор без аргументов — нам часто нужны аргументы в наших конструкторах, чтобы убедиться, что экземпляр объекта создается в действительном состоянии, но стандарт JavaBean требует, чтобы мы предоставили конструктор без аргументов.

Учитывая эти компромиссы, фреймворки с годами также адаптировались к другим соглашениям о компонентах.

5. Вывод​

В этом руководстве мы сравнили POJO с JavaBeans.

Во-первых, мы узнали, что POJO — это объект Java, который не привязан ни к какой конкретной структуре, и что JavaBean — это особый тип POJO со строгим набором соглашений.

Затем мы увидели, как некоторые фреймворки и библиотеки используют соглашение об именах JavaBean для обнаружения свойств класса.

Как обычно, примеры доступны на GitHub .

Источник

What is POJO class?

Plain Old Java Object is called the POJO class. POJO class has some points are:
• The java class without any specialities i.e., it is a regular java class.
• While developing this class we need not follow any serious rules.
• The java class that is not extending from the technology or framework API class and does not implement technology or framework API interfaces is called the POJO class.
• Use of this class is improving the readability and reusability of the code.
• There is no restriction of modifiers of the properties in this class.
• This class is not mandatory for the 0-param constructor.
• This class is using getter() and setter() methods for transmitting and retrieving data from one layer to another in a real-time project.
• The POJO class should always be public.
• The POJO class should have the default constructor.
• The POJO class may contain the parameterized constructor if needed.
• Every Java Bean class is a POJO class.

class Test implements Serializable < //your statement >
class Test extends Demo < //your statement >class Demo < //your statement >

→ Test, Demo classes are POJO classes

class Test extends Thread < //your statement >
class Test extends HttpServlet < //your statement >
class Test extends java.sql.Connection < //your statement >

Create a POJO class:

//Person POJO class represents properties of the Person public class Person < //default property Long id; //public property public String name; //private property private Integer mobileNo; //parameterized constructor to initialize properties public Person(Long id,String name,Integer mobileNo)< this.id=id; this.name=name; this.mobileNo=mobileNo; >//getter of the id property public Long getId() < return id; >//setter of the id property public void setId(Long id) < this.id = id; >//getter of the name property public String getName() < return name; >//setter of the name property public void setName(String name) < this.name = name; >//getter of the mobileNo property public Integer getMobileNo() < return mobileNo; >//getter of the mobileNo property public void setMobileNo(Integer mobileNo) < this.mobileNo = mobileNo; >> 

→ In the above example we created a POJO class with the name “Person”. Properties of this class id, name, and mobileNo and modifiers of these properties are default, public and private respectively. This class contains parameterized constructor to initialize these properties. This class is also having the setter and getter method for each property for sending and retrieving data from classes. This is an example of a POJO class that uses every property in this Person class to make a POJO class.
→ We can use the POJO class as a Model class when we are working on a real-time project. At that time we are sending data from Controller to Service to DAO and vice versa. POJO class helps to use reusability features in the code in real-world scenarios.
→ We can use a private modifier for the properties of the POJO class when we are working on real-time projects.

Conclusion:
This topic is explained What is a Pojo class? How can we identify which is the POJO class?

Источник

What is pojo class in java

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

Читайте также:  Java проверить размер массива
Оцените статью