java bean和pojo的区别
一、 定义
POJO
是Plain Old Java Object
的缩写,它主要用来强调某个对象是一个普通的Java对象,而不是一个特殊的对象,尤其不是一个EJB。这个术语以其简单易懂的特性被广泛接受并使用,并用来区别那些复杂的对象框架。
一个
JavaBean
是一个可以被序列化的POJO
。有一个默认的无参构造器,并允许使用Getter和Setter方法访问属性。对于EJB来说,
JavaBean
并不是一个单独的类,而是整个组件模型。JavaBean是java构建程序中可重用的软件组件,实际开发过程中,它们是使用java语言编写并符合某个约定的类。它们被用来封装一些对象到单个对象(也就是bean)中。
二、 用法
POJO
主要被用来表明一个java对象不需要跟随任何java对象模型、约定或者框架。最理想的情况,一个POJO
应该是一个不和任何框架绑定的java对象,并遵循以下原则:- 不应该继承某个指定的类,比如HttpServlet;
- 不应该实现指定的接口,比如EntityBean;
- 不应该包含某些框架的注解。
- JavaBean应该遵循以下原则:
- 必须有一个公共的默认构造器,便于实例化;
- 属性必须可以通过Getter和Setter或者其他的可以访问并修改的方法进行控制,并遵循标准的命名规范,以便于框架对其进行自动化管理和状态的更新;
- 必须可以被序列化,以便于应用和框架以一种独立于VM和操作系统的方式对其进行可靠的保存、存储以及恢复bean的状态。
对于业务程序员来说,这两种类型的java对象其实可以等同,或者说POJO更多强调的是一种业务概念,而JavaBean则属于java编程语言的特性。