DataSourceContextHolder.java 967 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.keao.edu.datasource;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.List;
  5. public class DataSourceContextHolder {
  6. public final static String TENANT_ID = "master";
  7. private static final ThreadLocal<Object> contextHolder = new ThreadLocal<Object>() {
  8. @Override
  9. protected String initialValue() {
  10. return TENANT_ID;
  11. }
  12. };
  13. public static List<Object> dataSourceKeys = new ArrayList<Object>();
  14. public static void setDataSourceKey(String key) {
  15. contextHolder.set(key);
  16. }
  17. /**
  18. * 获取数据源
  19. * @return
  20. */
  21. public static Object getDataSourceKey() {
  22. return contextHolder.get();
  23. }
  24. /**
  25. * 重置数据源
  26. */
  27. public static void clearDataSourceKey() {
  28. contextHolder.remove();
  29. }
  30. public static boolean containDataSourceKey(Object key) {
  31. return dataSourceKeys.contains(key);
  32. }
  33. public static boolean addDataSourceKeys(Collection<? extends Object> keys) {
  34. return dataSourceKeys.addAll(keys);
  35. }
  36. }