JavaBean
概念JavaBean是Java的特殊类,可以将多个对象封装在一个对象中。 其特点是可以序列化,提供无参数构造函数,getter和setter方法可以访问对象的属性。 名称中的“Bean”是Java可重用软件组件的通用名称
特征Bean控制属性、事件和方法是否公开给其他程序。
Bean可以从其他对象接收事件,也可以在其他对象上生成事件。
有配置Bean的软件。
可以序列化Bean的属性,以便以后重用。
指定所有属性都是私有的
提供缺省的无参数构建方法
提供getter和setter的方法
实现序列化接口,可序列化和反序列化,可选
用于应用场景view —— bean ——控制器的外部视图与控制器交换数据
service —— bean ——数据库APP应用程序服务层和数据库持久性层用于访问数据
microservicea —— bean —— microserviceb微服务模块与其他微服务模块之间通信和使用
注意:
JavaBean是符合1996年发布的Sun的JavaBean规范的类。 JavaBean被定义为Java的“软件组件模型”。
SpringBean本质上是由Spring管理的对象。 特别是由spring框架容器实例化、配置和管理的对象。 Spring bean在Spring配置文件中定义,或使用特定注释由Spring容器实例化并注入到APP应用程序中。 之所以将Spring托管对象称为Bean,是因为在以前的版本中,Spring仅用于JavaBean。 当然,不是这种情况。 Spring几乎可以管理所有对象,而无需具有缺省构造函数或JavaBean类型的特性,如mutator方法(getter和setter )。 尽管如此,“SpringBean”一词仍然存在。
注:以下术语的不规范通常基于业务场景约定而流行,直接或间接继承了JavaBean的规范和特征
模特
在概念MVC的三个层次开发中,模型负责View需要渲染的数据
应用场景@requestmapping(/list ) )。
公共字符串列表(httpservletrequestrequest,模型模型) {
usermodelusermodel=新用户模型(;
model.addattribute('userModel ',usermodel );
返回'用户/列表';
}
实体
概念实体是轻量级持久性域对象。 实体通常表示关系数据库中的表,每个实体实例对应于表中的一行
规范类必须使用javax.persistence.Entity注释进行注释。
类必须具有公共或受保护的无参数构造函数。 这个类可能有其他构造函数。
不能将类声明为final。 方法或永久实例变量不需要声明为final。
如果实例通过值作为隔离对象传递,例如,通过会话Bean的远程业务接口传递,则类必须实现序列化接口。
可以扩展实体类和非实体类,也可以扩展非实体类。
永久实例变量必须声明为私有、受保护或包的私有,并且只能通过实体类的方法直接访问。 客户必须通过访问者或业务方法访问实体的状态。
适用场景
在JPA中,创建实体并将其与数据表字段一一对应@Entity
@Table
公共类活动{
@Id
@ generated value (strategy=generation type.identity )
私有integer id;
私有字符串活动名称;
}
pojo(plainoldJavaobject ) )。
概念POJO表示常见的旧Java对象。 这是典型的Java对象,除了Java语言规范要求外,没有特殊限制,也不需要类路径。 POJO用于提高程序的可读性和复用性。 因为POJO容易写和理解,所以得到了最多的批准。 这些是Sun Microsystems在EJB 3.0中引入的。
不能继承指定的类
无法实现预定的接口
其他注释不可用
JavaBean是POJO的特殊类型,POJO不一定是JaveBean
POJO和Java Bean的区别POJOJAVABean除了对Java语言施加的限制以外没有其他特殊限制。 这是一个特别的POJO,有一些限制。
我不太控制成员。 提供对成员的完全控制。
可以实现可序列化接口。 必须实现可串行化接口。
可以通过字段名访问字段。 字段只能由getter和setter访问。
字段可以具有任意可见性。 字段只能是专用显示。
可能没有无arg构造函数。 需要无参数构造函数。
用于限制成员或不希望用户完全访问实体的情况。 用于向用户提供实体,但只为实体的一部分提供服务。
POJO类和Bean用于定义Java对象以提高可读性和可复用性。 POJO没有其他限制,但bean是具有一些限制的特殊POJO。
派生对象
分层域模型约定: do (数据对象) :与数据库表结构一一对应,通过DAO层将数据源对象向上传输。
数据传输对象(dto ) :需要在数据传输对象、服务或模块之间传输的对象
业务对象(bo ) :业务对象。 从服务层输出的封装业务逻辑的对象。
视图对象(VO ) :显示层对象,通常是从Web传输到模板渲染引擎中的层的对象。 虽然有时也称为Value Object值对象,但不推荐使用