自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

POJO、Java Bean是如何定義的

開發(fā) 前端
一個(gè)POJO總是孤孤單單的,它不可能成為一個(gè)Java Bean或者Spring Bean;但是Java Bean可以同時(shí)是一個(gè)Spring Bean;Spring Bean也可以是一個(gè)Java Bean。

在日常開發(fā)中還有一些類經(jīng)常被人叫做POJO,還有的人叫它們Java Bean。這些概念都是在特定場(chǎng)景下引入,用來表明它們的特性的。那這些稱呼都是啥意思,有啥標(biāo)準(zhǔn)和特征呢?今天就來分享一下這些沒用的知識(shí)。

POJO

POJO是 Plain Old Java Object 的簡(jiǎn)寫,大概意思就是“淳樸的Java對(duì)象”。這個(gè)詞是國外一家外包公司的員工創(chuàng)造的。哪些類是POJO類還是有說法的,需要同時(shí)滿足以下幾個(gè)條件:

  • 不實(shí)現(xiàn)任何接口的類。
  • 不繼承任何其它類的類。
  • 不使用任何外部注解的類。

這種類其實(shí)就是切斷了和外界聯(lián)系的Java類,下面這個(gè)類肯定不是:

@Data
public class Dog {
private String name;
private Integer age;
}

這個(gè)才是POJO:

public class Dog {
private String name;
private Integer age;
}

Java Bean

Java Bean也經(jīng)常出現(xiàn)在各種技術(shù)文獻(xiàn)中,也不是隨便什么類都能叫做Java Bean的,它需要有以下定義:

  • 有無參數(shù)構(gòu)造。
  • 所有的屬性必須是私有屬性(private)。
  • 所有的屬性必須有公共的(public?)的Getter和Setter。
  • 它必須是可以被序列化的,也就是實(shí)現(xiàn)java.io.Serializable接口。

按照這個(gè)定義,POJO類如果想成為Java Bean,需要改造成下面的形式:

import java.io.Serializable;

/**
* @author felord.cn
*/
public class Dog implements Serializable {
private static final long serialVersionUID = 6723564465081191620L;
private String name;
private Integer age;

public String getName() {
return name;
}

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

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}
}

Spring Bean

既然說到這里了,不妨再說下Spring Bean。Spring Bean的要求就低多了,只要這個(gè)類(接口)被注入了Spring IoC,那么這個(gè)類(接口)都可以被稱作一個(gè)Spring Bean。至于一個(gè)類如何注入Spring IoC,這里就不說了,大家天天都在做。

最后

最后,我們可以得出結(jié)論,一個(gè)POJO總是孤孤單單的,它不可能成為一個(gè)Java Bean或者Spring Bean;但是Java Bean可以同時(shí)是一個(gè)Spring Bean;Spring Bean也可以是一個(gè)Java Bean。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)小胖哥
相關(guān)推薦

2021-05-11 07:42:59

BeanSpring屬性

2009-06-17 17:04:37

BeanFactorySpring

2024-12-31 11:40:05

2016-01-04 10:10:45

項(xiàng)目經(jīng)理成功

2009-08-04 13:31:35

C#自定義事件

2021-07-05 08:43:46

Spring Beanscope作用域

2012-07-18 12:44:02

2021-01-31 22:54:39

Java Jsoy開發(fā)

2021-06-18 07:35:46

Java接口應(yīng)用

2021-02-03 08:02:50

Spring Bean框架

2015-11-12 09:17:30

Java Main執(zhí)行

2023-09-05 08:23:56

SpringScope方法

2018-07-06 15:58:34

SpringSchemaJava

2024-05-29 08:19:03

2009-06-22 16:19:45

JavaBeansEJBPOJO

2024-10-16 17:01:17

Java開發(fā)SpringBoot

2017-11-17 09:13:31

Java注解

2009-06-22 16:59:33

POJOSpringEJB 3.0

2021-03-08 08:40:25

Spring Bean 創(chuàng)建單例對(duì)象

2019-11-19 08:04:16

JavaHashSet去重
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)