在日常开发中还有一些类经常被人叫做POJO,还有的人叫它们Java Bean。这些概念都是在特定场景下引入,用来表明它们的特性的。那这些称呼都是啥意思,有啥标准和特征呢?今天就来分享一下这些没用的知识。

POJO

POJO是 Plain Old Java Object 的简写,大概意思就是“淳朴的Java对象”。这个词是国外一家外包公司的员工创造的。哪些类是POJO类还是有说法的,需要同时满足以下几个条件:

不实现任何接口的类。
不继承任何其它类的类。
不使用任何外部注解的类。
这种类其实就是切断了和外界联系的Java类,下面这个类肯定不是:

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

这个才是POJO:

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

Java Bean
Java Bean也经常出现在各种技术文献中,也不是随便什么类都能叫做Java Bean的,它需要有以下定义:

有无参数构造。
所有的属性必须是私有属性(private)。
所有的属性必须有公共的(public​)的Getter和Setter。
它必须是可以被序列化的,也就是实现java.io.Serializable接口。
按照这个定义,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的要求就低多了,只要这个类(接口)被注入了Spring IoC,那么这个类(接口)都可以被称作一个Spring Bean。至于一个类如何注入Spring IoC,这里就不说了,大家天天都在做。

最后
最后,我们可以得出结论,一个POJO总是孤孤单单的,它不可能成为一个Java Bean或者Spring Bean;但是Java Bean可以同时是一个Spring Bean;Spring Bean也可以是一个Java Bean`

POJO、Java Bean是如何定义的相关推荐

  1. pojo与java bean_POJO与Java Bean

    我们知道在Java中POJO是指普通的旧Java对象.Java中的POJO和Bean类具有一些共同的特征,如下所示-两个类都必须是公共的,即所有人都可以访问. 在两个类中定义的属性或变量必须是私有的, ...

  2. 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

    根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...

  3. 关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别

    关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别: Pojo: Pojo 普通的java对象 最基本的javaBean只有属性 加上属性的get,set方法,可以转 ...

  4. ejb java bean的区别_关于ejb:Bean,Java Bean和Enterprise Java Bean之间的区别

    本问题已经有最佳答案,请猛点这里访问. 我已经阅读了关于EJB,JavaBean的文章,但是我仍然怀疑"bean"这个词本身是什么意思呢? a)纯术语"bean" ...

  5. java bean spring_Java bean与Spring、Spring MVC关系

    Java Bean Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定. ...

  6. 【建议收藏】MD5 算法的Java Bean

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输 ...

  7. Spring在bean配置文件中定义电子邮件模板

    在上一篇Spring电子邮件教程,硬编码的所有电子邮件属性和消息的方法体中的内容,这是不实际的,应予以避免.应该考虑在Spring bean 配置文件中定义电子邮件模板. 1.Spring的邮件发件人 ...

  8. Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作

    正如前面一篇文章的介绍,当使用Servlet提交表单和JSP数据库查询时,总是相互交叉着的处理,要么在JSP中通过<%...%>内嵌Java代码操作数据库,要么 JSP中通过Post方法提 ...

  9. Java Bean Validation 最佳实践

    <h1 class="postTitle"><a id="cb_post_title_url" class="postTitle2& ...

最新文章

  1. GridView隐藏列取值解决方案
  2. java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器
  3. 深入理解幂等性及Restful风格API的幂等性问题详解
  4. 博弈论66个经典例子_「百大管理学定律」博弈论Game Theory
  5. 《全栈营销之如何制作个人博客》之二:php环境安装及个人博客后台搭建 让你的博客跑起来...
  6. Python3只出现一次数字
  7. 分享 : 警惕MySQL运维陷阱:基于MyCat的伪分布式架构
  8. 鼠标中间无法打开新标签_还记得鼠标有几个键?Win10环境鼠标中键的妙用
  9. php开发当中遇到的各种问题,PHP项目开发中遇到过的问题
  10. LeetCode简单题目(#118 #119 #121 #122 #125 #136 #141 #155)-8道
  11. easyui中datagrid空数据集不刷新的解决方式
  12. MySQ随笔2(连接表、分组)
  13. java 字符串长度截取,实现java字符串长度截取功能,java字符串长度截取
  14. 如何给视频加背景音乐?简单快速上手,制作抖音等小视频必备!
  15. 创造者的品味 转自apple4.us
  16. html页面整体偏移了怎么办,html2canvas生成的图片偏移不完整的解决方法
  17. 对量子态和运算的一些基础认识
  18. 关于UnityPC端打包参数设置及发布PC端时固定分辨率
  19. JAVA网络爬爬学习之HttpClient+Jsoup
  20. py socket5 代理

热门文章

  1. javaScript改变this指向的三种方法
  2. PKUSC2019总结
  3. htmlparser 获取html,根据htmlparser写的一个提取页面纯文本的C#程序
  4. 软件质量控制相关知识
  5. linux驱动调试技巧:灌寄存器---------以mma7660为例
  6. 郭敬明最经典的45句话
  7. Mysql数据库可视化工具Navicat使用
  8. 配置了Maven环境变量后,cmd中mvn -v一直报“mvn不是内部命令”
  9. aabbcc本质不同的排列数
  10. 前端知识-CSS定位机制:标准流、浮动、定位