-1

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

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

4

2 回答 2

0
  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",};
}
于 2020-02-25T13:15:17.583 回答
0

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

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

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

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

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

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

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

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

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

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

于 2020-02-25T13:15:28.930 回答