spring-hadoop系列源码(一)

源码如下:
/**
* HTableInterface工具类
* 用于create table 和 release table
* @since 0.21.0
*/
@InterfaceAudience.Public
@InterfaceStability.Stable
public interface HTableInterfaceFactory {

  /**
   * Creates a new HTableInterface.
   * 创建hbase table
   * @param config HBaseConfiguration instance.  hbase 配置信息
   * @param tableName name of the HBase table.   hbase中的表名
   * @return HTableInterface instance. 
   */
  HTableInterface createHTableInterface(Configuration config, byte[] tableName);


  /**
   * Release the HTable resource represented by the table.
   * @param table
   */
  void releaseHTableInterface(final HTableInterface table) throws IOException;
}
二、说明
关于@InterfaceAudience.Public 设定访问权限;@InterfaceStability.Stable 设定版本的稳定性,位于hadoop common模块;详解如下
1、InterfaceAudience 有三个抽象方法,主要用于说明使用的范围
/**
   * Intended for use by any project or application. 在任务项目或应用中可使用
   */
  @InterfaceAudience.Public

/**
   * Intended only for the project(s) specified in the annotation.
   * For example, "Common", "HDFS", "MapReduce", "ZooKeeper", "HBase".

   * 只能用在指定的项目中如"Common", "HDFS", "MapReduce", "ZooKeeper", "HBase"
   */
  @InterfaceAudience.LimitedPrivate

/**
   * Intended for use only within Hadoop itself. 只能在hadoop本身项目中使用
   */
  @InterfaceAudience.Private

2、InterfaceStability 有三个抽象方法,主要用于说明版本的稳定性,及有特定包的依赖

/**
   * Can evolve while retaining compatibility for minor release boundaries.;
   * can break compatibility only at major release (ie. at m.0). 主版本是稳定的,不同主版本间可能不兼容
   */
@InterfaceStability.Stable

/**
   * Evolving, but can break compatibility at minor release (i.e. m.x) 不断变化,不同次版本间可能不兼容
   */
@InterfaceStability.Evolving

/**
   * No guarantee is provided as to reliability or stability across any 不能提供稳定性和可靠性
   * level of release granularity.
   */
@InterfaceStability.Unstable

猜你喜欢

转载自dalan-123.iteye.com/blog/2259726