Java | 搞懂什么是POJO、PO、DTO、VO和BO

1 概述

在Java世界里,Java Bean代表着一种可重用的组件。要求类必须是具体的、公共的,而且构造函数必须无参。POJO是Java Bean里最为普通的一种,PO、DTO、VO和BO是其转化而来的Java Bean 对象。

2 Java Bean

在这里插入图片描述

Java Bean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。所有遵循一定编程原则的Java类都可以被称作Java Bean。

一般而言,JavaBean需要遵循如下原则:

  • 这个类必须具有一个公共的(public)无参构造函数;
  • 所有属性私有化(private);
  • 私有化的属性必须通过public类型的方法(getter和setter)暴露给其他程序,并且方法的命名也必须遵循一定的命名规范。
  • 这个类应是可序列化的。(比如可以实现Serializable 接口,用于实现bean的持久性)

3 POJO

简单并且纯粹,POJO就是一个Java组件只包含自己的属性(private)和提取或储存这些属性的method(get、set),而其他的Object也是以POJO为基准开始延伸。

举个例子:

// POJO 
public class User {
	private long id;
	private String name;
	
	public void setId(long id) {
		this. id = id;
	}
	
	public void setName(String name) {
		this. name=name;
	}
	
	public long getId() {
		return id;
	}
	
	public String getName() {
		return name;
	}
}
3.1 PO

POJO持久化之后就变成了PO,因为ORM框架的诞生所以才有PO的概念,可以简单地将它视为与数据库table对应的java组件,通常PO的名词都会与使用hibernate相关。

3.2 VO

POJO用在表示层就变成成了VO ,通常是Web向模板渲染引擎层传输的对象。

3.3 DTO

POJO用作参数传输就变成了DTO,阿里巴巴开发手册提到,DTO是Service或Manager向外传输的对象。

3.4 BO

POJO用作业务对象时就变成了BO,由Service层输出的封装业务逻辑的对象。

4 小结

在这里插入图片描述

我们经常使用Spring Bean 不同于Java Bean。Spring Bean 对 Bean 做了一个对业务代码无侵入的实现方案, 引入了 BeanDefinition .开发者不需要再强制依赖 EJB 的接口, 不需要再对无用接口进行空实现.

Spring Bean 并不强制 Bean 必须拥有哪些特征, 你可以通过 BeanDefinition 来定制 Bean 的特征, Bean 可以是最简单的 POJO, 也可以具有完整的状态、 行为、事件、 事务、生命周期等。

简单的讲,Java Bean 可以是Spring Bean,但Spring Bean 不一定符合Java Bean 的约定规范。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟华328

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值