我认为,我理解“Bean”是一个具有财产和getters/setter的Java-class。据我所知,它相当于C结构。这是真的吗?
此外,JavaBean和常规类之间是否存在真正的语法差异?是否有特殊定义或接口?
基本上,为什么有一个术语?
Serializable接口是什么意思?
我认为,我理解“Bean”是一个具有财产和getters/setter的Java-class。据我所知,它相当于C结构。这是真的吗?
此外,JavaBean和常规类之间是否存在真正的语法差异?是否有特殊定义或接口?
基本上,为什么有一个术语?
Serializable接口是什么意思?
当前回答
JavaBean是JavaBeans体系结构中的一个组件或基本构建块。JavaBeans体系结构是一种组件体系结构,它受益于基于组件的方法的可重用性和互操作性。
有效的组件体系结构应允许程序从软件构建块(在本例中为Beans),可能由不同的供应商提供,也使架构师/开发人员能够选择组件(Bean),了解其功能,并将其合并到应用程序中。
因为类/对象是像Java这样的OOP语言的基本构建块,所以它们是JavaBeans体系结构中Bean的自然竞争者。
将普通Java类转换为Javabean的过程实际上只不过是使其成为可重用和可互操作的组件。这将转化为具有以下功能的Java类:
控制向其他应用程序公开的类的财产、事件和方法。(您可以有一个BeanInfo类,它只报告外部应用程序需要的那些财产、事件和方法。)持久性(可串行化或可外部化-这也意味着没有参数构造函数,对字段使用瞬态)注册事件和生成事件的能力(例如,使用绑定和约束财产)定制器(通过GUI或提供文档来定制Bean)
为了将Java类称为Javabean,它们不需要具备上述所有能力。相反,它意味着实现上述与上下文相关的子集(例如,某个框架中的bean可能不需要自定义程序,其他一些bean可能并不需要绑定和约束的财产,等等)
为了获得上述好处,Java中几乎所有领先的框架和库都隐式地遵循JavaBeans体系结构。
其他回答
根据维基百科:
类必须具有公共默认构造函数(没有参数)。这允许在编辑和激活框架内轻松实例化。根据标准命名约定,类财产必须可以使用get、set、is(可以用于布尔财产而不是get)和其他方法(所谓的访问器方法和赋值器方法)进行访问。这允许在框架内轻松地自动检查和更新bean状态,其中许多框架包括各种类型财产的自定义编辑器。setter可以有一个或多个参数。该类应该是可序列化的。(这允许应用程序和框架以独立于VM和平台的方式可靠地保存、存储和恢复bean的状态。)
有关详细信息,请单击此链接。
JavaBean的财产
JavaBean是满足某些编程约定的Java对象:
JavaBean类必须实现Serializable或可外部化JavaBean类必须具有无参数构造函数所有JavaBean财产都必须具有公共setter和getter方法所有JavaBean实例变量都应该是私有的
JavaBeans示例
@Entity
public class Employee implements Serializable{
@Id
private int id;
private String name;
private int salary;
public Employee() {}
public Employee(String name, int salary) {
this.name = name;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}
POJO(普通的旧Java对象):POJO是普通的Java对象,除了Java语言强制的限制外,没有其他限制。
序列化:用于保存对象的状态并通过网络发送。它将对象的状态转换为字节流。我们可以通过称为反序列化的过程从字节流中重新创建Java对象。
使类实现java.io.Serializable接口。并使用ObjectOutputStream类的writeObject()方法实现序列化。
JavaBean类:它是一个特殊的POJO,有一些限制(或约定)。
实现序列化具有公共无参数构造函数所有财产都是私有的,使用公共getters和setter方法。
许多框架(如Spring)使用JavaBean对象。
它们是可序列化的,具有零参数构造函数,并允许使用getter和setter方法访问财产。命名“Bean”是为了包含这个标准,它旨在为Java创建可重用的软件组件。根据维基百科。
构成应用程序主干并由SpringIoC容器管理的对象称为bean。bean是由Spring IoC容器实例化、组装和管理的对象。否则,bean只是应用程序中许多对象中的一个。根据Spring IoC。
JavaBean是一个Java类(概念性),应该遵循以下约定:
它应该有一个无参数构造函数。它应该是可序列化的。它应该提供设置和获取财产值的方法,称为getter和setter方法。
它是一个可重用的软件组件。它可以将多个对象封装到一个对象中,以便可以从多个位置访问同一个对象,这是代码易于维护的一步。