我认为,我理解“Bean”是一个具有财产和getters/setter的Java-class。据我所知,它相当于C结构。这是真的吗?
此外,JavaBean和常规类之间是否存在真正的语法差异?是否有特殊定义或接口?
基本上,为什么有一个术语?
Serializable接口是什么意思?
我认为,我理解“Bean”是一个具有财产和getters/setter的Java-class。据我所知,它相当于C结构。这是真的吗?
此外,JavaBean和常规类之间是否存在真正的语法差异?是否有特殊定义或接口?
基本上,为什么有一个术语?
Serializable接口是什么意思?
当前回答
实际上,Beans只是方便使用的对象。序列化它们意味着能够容易地持久化它们(以易于恢复的形式存储)。
现实世界中Beans的典型用法:
简单可重用对象POJO(纯旧Java对象)可视对象Spring使用Beans处理对象(例如,需要在会话中序列化的User对象)EJB(Enterprise Java Beans),更复杂的对象,如JSF Beans(JSF是过时的技术)或JSP Beans
因此,实际上,Bean只是一种约定/标准,它期望Java对象具有某种行为(序列化),并以某种方式对其进行更改(财产的setter)。
如何使用它们,只是你的发明,但我上面列举的最常见的情况。
其他回答
JavaBean是一个Java类(概念性),应该遵循以下约定:
它应该有一个无参数构造函数。它应该是可序列化的。它应该提供设置和获取财产值的方法,称为getter和setter方法。
它是一个可重用的软件组件。它可以将多个对象封装到一个对象中,以便可以从多个位置访问同一个对象,这是代码易于维护的一步。
JavaBeans用于更少的代码和更多的工作方法。。。
JavaBeans在整个JavaEE中被用作运行时发现和访问的通用契约。例如,JavaServerPages(JSP)使用JavaBeans作为页面之间或servlet和JSP之间的数据传输对象。Java EE的JavaBeans激活框架使用Java Beans将对MIME数据类型的支持集成到Java EE中。Java EE管理API使用JavaBeans作为在Java EE环境中管理的资源插入的基础。
关于序列化:
在对象序列化中,对象可以表示为一个字节序列,其中包括对象的数据以及关于对象类型和存储在对象中的数据类型的信息。
序列化对象写入文件后,可以从文件中读取并反序列化,也就是说,可以使用表示对象及其数据的类型信息和字节在内存中重新创建对象。
它们是可序列化的,具有零参数构造函数,并允许使用getter和setter方法访问财产。命名“Bean”是为了包含这个标准,它旨在为Java创建可重用的软件组件。根据维基百科。
构成应用程序主干并由SpringIoC容器管理的对象称为bean。bean是由Spring IoC容器实例化、组装和管理的对象。否则,bean只是应用程序中许多对象中的一个。根据Spring IoC。
要理解JavaBean,您需要注意以下几点:
JavaBean是概念性的东西,不能表示一类特定的东西
JavaBean是一种开发工具,可以在可重用软件组件的操作中可视化
JavaBean基于SunJavaBeans规范,可以是可重用的组件。它最大的特点是可重用性。
JavaBean只是一个标准。它是一个常规的Java类,但它遵循某些约定:
所有财产都是私有的(使用getters/setter)公共无参数构造函数实现可序列化。
就是这样,这只是一个惯例。但许多图书馆都依赖它。
关于Serializable,请参阅API文档:
类的可序列化性由实现java.io.Serializable接口。不实现此功能的类接口将不会序列化或反序列化它们的任何状态。可序列化类的所有子类型本身都是可序列化的。这个序列化接口没有方法或字段,仅用于识别可序列化的语义。
换言之,可序列化对象可以写入流,因此可以写入文件、对象数据库等。
此外,JavaBean和另一个类之间没有语法差异——如果一个类遵循标准,那么它就是JavaBean。
这是一个术语,因为该标准允许库以编程方式处理您以预定义方式定义的类实例。例如,如果一个库想要流式传输您传递给它的任何对象,它知道可以这样做,因为您的对象是可序列化的(假设库要求您的对象为正确的JavaBeans)。