RowkeyFactory.java 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.yihu.base.hbase.rowkey;
  2. import com.yihu.base.hbase.properties.HbaseProperties;
  3. import com.yihu.base.hbase.rowkey.impl.UUIDRowkeyGenerate;
  4. import org.apache.commons.lang3.StringUtils;
  5. /**
  6. * Created by chenweida on 2018/2/28.
  7. */
  8. public class RowkeyFactory {
  9. private volatile static IRowkeyGenerate rowkeyGenerate = null;
  10. private RowkeyFactory() {
  11. }
  12. public static String getRowkey(HbaseProperties hbaseProperties) {
  13. //初始化rowkey生成器
  14. if (rowkeyGenerate == null) {
  15. synchronized (RowkeyFactory.class) {
  16. if (rowkeyGenerate == null) {
  17. initIRowkeyGenerate(hbaseProperties);
  18. }
  19. }
  20. }
  21. return rowkeyGenerate.getRowkey();
  22. }
  23. private static void initIRowkeyGenerate(HbaseProperties hbaseProperties) {
  24. //如果为空默认uuid
  25. if (StringUtils.isNoneEmpty(hbaseProperties.getRowkey())) {
  26. rowkeyGenerate = new UUIDRowkeyGenerate();
  27. } else {
  28. switch (hbaseProperties.getRowkey()) {
  29. case HbaseProperties.rowkeyGenerate_uuid: {
  30. rowkeyGenerate = new UUIDRowkeyGenerate();
  31. return;
  32. }
  33. default: {
  34. rowkeyGenerate = new UUIDRowkeyGenerate();
  35. return;
  36. }
  37. }
  38. }
  39. }
  40. }