如何创建POJO?

2022-08-31 14:21:22

最近,我开始听说“POJO”(普通的旧Java对象)。我用谷歌搜索了它,但仍然不太理解这个概念。任何人都可以给我一个清晰的描述POJO?

考虑一个带有变量“id,姓名,地址,薪水”的类“Person” - 我如何为这种情况创建POJO?下面的代码是 POJO 吗?

public class Person {
    //variables
    People people = new People();
    private int id;
    private String name;
    private String address;
    private int salary;


    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getAddress() {
        return address;
    }

    public int getSalary() {
        return salary;
    }

    public void setId() {
        this.id = id;
    }

    public void setName() {
        this.name = name;
    }

    public void setAddress() {
        this.address = address;
    }

    public void setSalary() {
        this.salary = salary;
    }
}

答案 1

POJO只是一个普通的,旧的Java Bean,删除了限制。Java Bean 必须满足以下要求:

  1. 默认无参数构造函数
  2. 遵循 getFoo 的 Bean 约定(或用于布尔值的 isFoo)和 setFoo 方法,用于名为 foo 的可变属性;如果 foo 是不可变的,则离开 setFoo。
  3. 必须实现 java.io.Serializable

POJO没有授权其中任何一项。顾名思义:在JDK下编译的对象可以被认为是普通的旧Java对象。没有应用服务器,没有基类,不需要使用接口。

首字母缩略词 POJO 是对 EJB 2.0 的反应,EJB 2.0 需要几个接口、扩展的基类和许多方法才能做简单的事情。包括 Rod Johnson 和 Martin Fowler 在内的一些人反抗这种复杂性,并寻求一种无需编写 EJB 即可实现企业级解决方案的方法。

马丁·福勒(Martin Fowler)创造了一个新的首字母缩略词。

Rod Johnson写了“J2EE Without EJBs”,写了Spring,对EJB的影响足够大,所以3.1版本看起来很像Spring和Hibernate,并从VMWare获得了甜蜜的IPO。

下面是一个您可以思考的示例:

public class MyFirstPojo
{
    private String name;

    public static void main(String [] args)
    {
       for (String arg : args)
       {
          MyFirstPojo pojo = new MyFirstPojo(arg);  // Here's how you create a POJO
          System.out.println(pojo); 
       }
    }

    public MyFirstPojo(String name)
    {    
        this.name = name;
    }

    public String getName() { return this.name; } 

    public String toString() { return this.name; } 
}

答案 2

POJO:- POJO 是一个 Java 对象,不受 Java 语言规范强制的限制以外的任何限制的约束。

波霍的特性

  1. 所有属性都必须是公共 setter 和 getter 方法
  2. 所有实例变量都应该是私有的
  3. 不应扩展预先指定的类。
  4. 不应实现预先指定的接口。
  5. 不应包含预先指定的批注。
  6. 它可能没有任何参数构造函数

POJO 示例

public class POJO {

    private String value;

    public String getValue() {
         return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

推荐