【问题标题】:Whats the difference between data bean, java bean and data structure数据bean、java bean和数据结构有什么区别
【发布时间】:2020-02-25 11:13:08
【问题描述】:

在学习 Apache Gora 的过程中,我了解了术语数据 bean。它可以被认为是保存数据的数据结构还是其他东西。

此外,还有一个类似的术语“Java bean”。它和数据bean一样吗?这三个术语有什么区别?

【问题讨论】:

  • 您的声望超过 5000。你已经问过很多java问题了。你没读过How much research effort is expected of Stack Overflow users? 在互联网上搜索JavaBeans这个词会提供很多的信息。
  • 先生,感谢您的评论。我知道什么是java Bean。我只是对差异而不是在互联网上很容易找到的确切定义感到不满。

标签: java data-structures javabeans gora


【解决方案1】:
  1. 数据 bean 是将数据保存在内存中并在 Gora 中持久化的主要方式。

  2. 如果您看到 Gora 数据 bean 看起来与 java bean 相似,那么结构明智,但一些 AVRO 特定差异如下

    • 这些数据 bean 包含 Embedded Avro Schema 声明和一个 名为 Field 的内部枚举。当我们查询时,这些枚举会派上用场 特定字段的数据存储

    • 使用 Utf8 类作为字符串字段的占位符

在阅读了 wiki 上的 Java Beans 定义后 “JavaBeans 是将许多对象封装到单个对象(bean)中的类。它们是可序列化的,具有零参数构造函数,并允许使用 getter 和setter 方法。命名“Bean”是为了包含这个标准,旨在为 Java 创建可重用的软件组件”

看不出数据 bean 和 java bean 有任何区别,除了两者都使用的上下文,即数据 bean 顾名思义在 Gora 中保存数据和 java bean 将对象保存在java.

而数据结构只不过是一种在程序或计算机中组织数据以便有效使用的方法。

GORA 中的数据 Bean 结构示例

public class Pageview extends PersistentBase {

private Utf8 url;
private long timestamp;
private Utf8 ip;

public static final Schema _SCHEMA = Schema.parse("{\"type\":\"record\", ... ");
  public static enum Field {
  URL(0,"url"),
  TIMESTAMP(1,"timestamp"),
  IP(2,"ip"),
  HTTP_METHOD(3,"httpMethod"),
  HTTP_STATUS_CODE(4,"httpStatusCode"),
  RESPONSE_SIZE(5,"responseSize"),
  REFERRER(6,"referrer"),
  USER_AGENT(7,"userAgent"),
  ;
  private int index;
  private String name;
  Field(int index, String name) {this.index=index;this.name=name;}
  public int getIndex() {return index;}
  public String getName() {return name;}
  public String toString() {return name;}
  };
  public static final String[] _ALL_FIELDS = {"url","timestamp","ip","httpMethod"
  ,"httpStatusCode","responseSize","referrer","userAgent",};
}

【讨论】:

    【解决方案2】:

    还有很多其他stackoverflow 问题,但这些术语的整体命名可能不清楚。

    让我们首先尝试定义什么是“bean”。
    bean 可以是某个对象的实例,该对象在其状态下保存一些数据。
    Bean 术语也用于描述某种可重用的软件组件。

    JavaBeans 术语指的是定义对象的标准和约定。之所以提出这个术语,是因为它所描述的标准允许在不知道对象确切类型的情况下使用方法(例如序列化)。
    正如this question 很好地描述的那样,JavaBean 或其他类之间没有太大区别。如果该类遵循该标准,它就会成为 JavaBean。

    还有一个Enterprise Java Beans (EJB),它是JEE API 的一部分。此 API 定义了将业务逻辑实现为服务器端组件的方式(EJB 在 JEE Web 容器中工作)。
    以及来自 Spring Framework 的 Spring Bean。这些 bean 是由 Spring IoC 容器实例化、组装和管理的对象。它们允许在实现 Spring 应用程序时利用依赖注入和控制反转。

    切入正题。
    您附上的link 清楚地定义了Apache Gora 中数据bean 的用途:

    数据bean是将数据保存在内存中并在Gora中持久化的主要方式。

    那里的“bean”是指对根据某种标准定义的某种数据结构的实例的一般理解。 “数据”只是为了表明它持有一些值或更可能,因为称它只是一个“bean”会有点愚蠢。

    EJB、Spring Beans、JavaBeans 中“bean”前面的名称描述了特定 bean 的上下文。同样,在 Apache Gora 中,“数据 bean”告诉我们正在处理由该“数据 bean”类型定义的某些数据结构的实例。

    没有特定的“数据 bean”术语,它可以指的不仅仅是结构化数据或值。

    最后,上面几乎所有的都是data structures,因为数据结构“是一种能够有效访问和修改的数据组织、管理和存储格式”。表格、列表、堆栈、行以及对象都是数据结构的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 2011-06-05
      • 2013-01-20
      相关资源
      最近更新 更多