抽取common项目,放入微服务开发时需要使用的一些公共类
diff --git a/samples/user/pom.xml b/samples/user/pom.xml
index e7d6492..e6c0032 100644
--- a/samples/user/pom.xml
+++ b/samples/user/pom.xml
@@ -15,6 +15,11 @@
   <dependencies>
 
     <dependency>
+      <groupId>com.supwisdom.leaveschool</groupId>
+      <artifactId>sample-common</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter</artifactId>
     </dependency>
@@ -29,11 +34,6 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
-
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-    </dependency>
     
 
     <dependency>
@@ -64,11 +64,6 @@
      -->
 
     <dependency>
-      <groupId>com.supwisdom.infras</groupId>
-      <artifactId>infras-data-jpa</artifactId>
-    </dependency>
-
-    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
     </dependency>
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserController.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserController.java
index 36ab166..a635ad9 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserController.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserController.java
@@ -19,11 +19,11 @@
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.supwisdom.leaveschool.common.model.PagerRequestModel;
+import com.supwisdom.leaveschool.common.model.PagerResponseModel;
+import com.supwisdom.leaveschool.common.util.DomainUtils;
 import com.supwisdom.leaveschool.user.domain.User;
-import com.supwisdom.leaveschool.user.model.PagerRequestModel;
-import com.supwisdom.leaveschool.user.model.PagerResponseModel;
 import com.supwisdom.leaveschool.user.repository.UserRepository;
-import com.supwisdom.leaveschool.user.util.DomainUtils;
 
 @RestController
 @RequestMapping("/api/v1/admin/users")
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/domain/User.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/domain/User.java
index 8af51c9..9a2c0d5 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/domain/User.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/domain/User.java
@@ -4,7 +4,7 @@
 import javax.persistence.Entity;
 import javax.persistence.Table;
 
-import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
+import com.supwisdom.leaveschool.common.domain.ABaseDomain;
 
 @Entity
 @Table(name = "TB_U_USER")
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/model/PagerRequestModel.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/model/PagerRequestModel.java
deleted file mode 100644
index c31ab0b..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/model/PagerRequestModel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.supwisdom.leaveschool.user.model;
-
-import java.io.Serializable;
-import java.util.Map;
-
-public class PagerRequestModel implements Serializable {
-
-  /**
-   * 
-   */
-  private static final long serialVersionUID = 6099787167570502127L;
-
-  private int pageIndex = 0;
-  private int pageSize = 20;
-
-  public int getPageIndex() {
-    return pageIndex;
-  }
-
-  public void setPageIndex(int pageIndex) {
-    this.pageIndex = pageIndex;
-  }
-
-  public int getPageSize() {
-    return pageSize;
-  }
-
-  public void setPageSize(int pageSize) {
-    this.pageSize = pageSize;
-  }
-
-  private Map<String, Object> mapBean;
-
-  public Map<String, Object> getMapBean() {
-    return mapBean;
-  }
-
-  public void setMapBean(Map<String, Object> mapBean) {
-    this.mapBean = mapBean;
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/model/PagerResponseModel.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/model/PagerResponseModel.java
deleted file mode 100644
index 3cab2b7..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/model/PagerResponseModel.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.supwisdom.leaveschool.user.model;
-
-import java.io.Serializable;
-import java.util.Collection;
-
-public class PagerResponseModel<T> extends PagerRequestModel implements Serializable {
-
-  /**
-   * 
-   */
-  private static final long serialVersionUID = -3449591075961852442L;
-
-  private int pageCount;
-  private long recordCount;
-
-  private Collection<T> items;
-
-  public PagerResponseModel() {
-
-  }
-
-  public PagerResponseModel(PagerRequestModel pagerRequestModel) {
-    super.setPageIndex(pagerRequestModel.getPageIndex());
-    super.setPageSize(pagerRequestModel.getPageSize());
-    super.setMapBean(pagerRequestModel.getMapBean());
-  }
-
-  public static <T> PagerResponseModel<T> of(PagerRequestModel pagerRequestModel) {
-    PagerResponseModel<T> pagerResponseModell = new PagerResponseModel<T>();
-    pagerResponseModell.setPageIndex(pagerRequestModel.getPageIndex());
-    pagerResponseModell.setPageSize(pagerRequestModel.getPageSize());
-    pagerResponseModell.setMapBean(pagerRequestModel.getMapBean());
-
-    return pagerResponseModell;
-  }
-
-  public int getPageCount() {
-    return pageCount;
-  }
-
-  public void setPageCount(int pageCount) {
-    this.pageCount = pageCount;
-  }
-
-  public long getRecordCount() {
-    return recordCount;
-  }
-
-  public void setRecordCount(long recordCount) {
-    this.recordCount = recordCount;
-  }
-
-  public Collection<T> getItems() {
-    return items;
-  }
-
-  public void setItems(Collection<T> items) {
-    this.items = items;
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java
index 097b648..ff1fd0b 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java
@@ -1,8 +1,6 @@
 package com.supwisdom.leaveschool.user.repository;
 
-import java.util.Calendar;
 import java.util.Map;
-import java.util.Optional;
 
 import org.springframework.data.domain.Example;
 import org.springframework.data.domain.ExampleMatcher;
@@ -10,7 +8,7 @@
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Repository;
 
-import com.supwisdom.infras.data.jpa.repository.BaseJpaRepository;
+import com.supwisdom.leaveschool.common.repository.BaseJpaRepository;
 import com.supwisdom.leaveschool.user.domain.User;
 
 @Repository
@@ -37,6 +35,7 @@
     return page;
   }
   
+  /*
   public default User selectById(String id) {
     
     try {
@@ -76,6 +75,6 @@
     
     return e;
   }
-
+  */
 
 }
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/DomainUtils.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/DomainUtils.java
deleted file mode 100644
index 48e9047..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/DomainUtils.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package com.supwisdom.leaveschool.user.util;
-
-import java.lang.reflect.Field;
-import java.util.Date;
-
-import javax.persistence.Column;
-import javax.persistence.Id;
-
-/**
- * 对 domain 的操作 如:复制、合并、转换等
- * 
- * @author loie
- *
- */
-public class DomainUtils {
-
-  /**
-   * 合并 domain 中带有{@link Column}注解的字段值, 将 oldDomain 中的值,使用 newDomain 中不为null的值
-   * 进行覆盖
-   * 
-   * @param newDomain
-   *          ,
-   * @param oldDomain
-   *          ,被覆盖的实体
-   * @return 合并后的oldDomain
-   */
-  public static <T> T merge(T newDomain, T oldDomain) {
-
-    for (Class<?> clazz = oldDomain.getClass(); clazz != Object.class; clazz = clazz.getSuperclass()) {
-      for (Field field : clazz.getDeclaredFields()) {
-        Column[] annotations = field.getAnnotationsByType(Column.class);
-        if (annotations == null || annotations.length == 0) {
-          Id[] idAnnotations = field.getAnnotationsByType(Id.class);
-          if (idAnnotations == null || idAnnotations.length == 0) {
-            continue;
-          }
-        }
-
-        String fieldName = field.getName();
-        Object newFieldValue = ReflectUtils.getFieldValue(newDomain, fieldName);
-
-        if (newFieldValue != null) {
-          ReflectUtils.setFieldValue(oldDomain, fieldName, newFieldValue);
-        }
-      }
-    }
-
-    return oldDomain;
-  }
-
-  public static <S, T> T copy(S sourceDomain, T targetDomain) {
-    
-    for (Class<?> clazz = targetDomain.getClass(); clazz != Object.class; clazz = clazz.getSuperclass()) {
-      for (Field field : clazz.getDeclaredFields()) {
-        Column[] annotations = field.getAnnotationsByType(Column.class);
-        if (annotations == null || annotations.length == 0) {
-          Id[] idAnnotations = field.getAnnotationsByType(Id.class);
-          if (idAnnotations == null || idAnnotations.length == 0) {
-            continue;
-          }
-        }
-
-        String fieldName = field.getName();
-        Object sFieldValue = ReflectUtils.getFieldValue(sourceDomain, fieldName);
-
-        if (sFieldValue != null) {
-          ReflectUtils.setFieldValue(targetDomain, fieldName, sFieldValue);
-        }
-      }
-    }
-
-    return targetDomain;
-  }
-
-  public static void main(String[] args) {
-
-    Test target0 = new Test();
-    target0.setId("id0");
-    target0.setCode("code");
-    target0.setName("name");
-    target0.setDate(new Date());
-    target0.setEnabled(false);
-    target0.setStatus(1);
-
-    System.out.println("target0 == " + target0.toString());
-    System.out.println();
-
-    Test source1 = new Test();
-    // source1.setId("id1");
-    source1.setCode("code1");
-    // source1.setName("name");
-    // source1.setDate(new Date());
-    source1.setEnabled(true);
-    // source1.setStatus(1);
-    System.out.println("source1 == " + source1.toString());
-
-    Test target1 = DomainUtils.merge(source1, target0);
-    System.out.println("target0 == " + target0.toString());
-    System.out.println("target1 == " + target1.toString());
-    System.out.println();
-
-    Test source2 = new Test();
-    // source2.setId("id2");
-    source2.setCode("code2");
-    source2.setName("name2");
-    // source2.setDate(new Date());
-    // source2.setEnabled(true);
-    source2.setStatus(2);
-    System.out.println("source2 == " + source2.toString());
-
-    Test target2 = DomainUtils.merge(source2, target0);
-    System.out.println("target0 == " + target0.toString());
-    System.out.println("target2 == " + target2.toString());
-    System.out.println();
-
-
-    Test test = new Test();
-    test.setId("id0");
-    test.setCode("code");
-    test.setName("name");
-    test.setDate(new Date());
-    test.setEnabled(false);
-    test.setStatus(1);
-
-    Test2 test2 = new Test2();
-    test2 = DomainUtils.copy(test, test2);
-    System.out.println("test    == " + test.toString());
-    System.out.println("test2   == " + test2.toString());
-    System.out.println();
-
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/ReflectUtils.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/ReflectUtils.java
deleted file mode 100644
index 3bec43d..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/ReflectUtils.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package com.supwisdom.leaveschool.user.util;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-/**
- * 利用反射进行操作的一个工具类
- * 
- */
-public class ReflectUtils {
-
-  /**
-   * 利用反射获取指定对象里面的指定属性
-   * 
-   * @param obj
-   *          目标对象
-   * @param fieldName
-   *          目标属性
-   * @return 目标字段
-   */
-  private static Field getField(Object obj, String fieldName) {
-    Field field = null;
-    for (Class<?> clazz = obj.getClass(); clazz != Object.class; clazz = clazz.getSuperclass()) {
-      try {
-        field = clazz.getDeclaredField(fieldName);
-        break;
-      } catch (NoSuchFieldException e) {
-        // 这里不用做处理,子类没有该字段可能对应的父类有,都没有就返回null。
-      }
-    }
-    return field;
-  }
-
-  /**
-   * 利用反射获取指定对象的指定属性
-   * 
-   * @param obj
-   *          目标对象
-   * @param fieldName
-   *          目标属性
-   * @return 目标属性的值
-   */
-  public static Object getFieldValue(Object obj, String fieldName) {
-    Object result = null;
-    Field field = ReflectUtils.getField(obj, fieldName);
-    if (field != null) {
-      field.setAccessible(true);
-      try {
-        result = field.get(obj);
-      } catch (IllegalArgumentException e) {
-        e.printStackTrace();
-      } catch (IllegalAccessException e) {
-        e.printStackTrace();
-      }
-    }
-    return result;
-  }
-
-  /**
-   * 利用反射设置指定对象的指定属性为指定的值
-   * 
-   * @param obj
-   *          目标对象
-   * @param fieldName
-   *          目标属性
-   * @param fieldValue
-   *          目标值
-   */
-  public static void setFieldValue(Object obj, String fieldName, Object fieldValue) {
-    Field field = ReflectUtils.getField(obj, fieldName);
-    if (field != null) {
-      try {
-        field.setAccessible(true);
-
-        if (fieldValue instanceof String) {
-          Object value = typeConversion(field.getType(), String.valueOf(fieldValue));
-          field.set(obj, value);
-        } else {
-          field.set(obj, fieldValue);
-        }
-
-      } catch (IllegalArgumentException e) {
-        e.printStackTrace();
-      } catch (IllegalAccessException e) {
-        e.printStackTrace();
-      }
-    }
-  }
-
-  /**
-   * 反射调用对象的方法
-   * 
-   * @param obj
-   *          对象
-   * @param methodName
-   *          方法名称
-   * @param paramType
-   *          参数类型 new Class[]{int.class,double.class}
-   * @param params
-   *          参数值 new Object[]{2,3.5}
-   * @return
-   * @throws Exception
-   */
-  public static Object invokeObjMethod(Object obj, String methodName, Class<?>[] paramTypes, Object[] params)
-      throws Exception {
-    // 发现类型
-    Class<?> cls = obj.getClass();
-    // 发现方法
-    Method method = cls.getDeclaredMethod(methodName, paramTypes);
-    // 访问方法时,压制Java对访问修饰符的检查
-    method.setAccessible(true);
-    Object val = method.invoke(obj, params);
-    return val;
-  }
-
-  /**
-   * 类型转换
-   * 
-   * @param clazz
-   *          :目标类型
-   * @param source
-   *          :待转换对象
-   * @return :目标对象
-   */
-  public static Object typeConversion(Class<?> clazz, String source) {
-
-    if (clazz == null) {
-      throw new IllegalArgumentException("clazz should not be null");
-    }
-
-    Object targetObj = null;
-    String nameType = clazz.getName();
-
-    if ("java.lang.Integer".equals(nameType) || "int".equals(nameType)) {
-      targetObj = Integer.valueOf(source);
-    } else if ("java.lang.String".equals(nameType) || "string".equals(nameType)) {
-      targetObj = source;
-    } else if ("java.lang.Float".equals(nameType) || "float".equals(nameType)) {
-      targetObj = Float.valueOf(source);
-    } else if ("java.lang.Double".equals(nameType) || "double".equals(nameType)) {
-      targetObj = Double.valueOf(source);
-    } else if ("java.lang.Boolean".equals(nameType) || "boolean".equals(nameType)) {
-      targetObj = Boolean.valueOf(source);
-    } else if ("java.lang.Long".equals(nameType) || "long".equals(nameType)) {
-      targetObj = Long.valueOf(source);
-    } else if ("java.lang.Short".equals(nameType) || "short".equals(nameType)) {
-      targetObj = Short.valueOf(source);
-    } else if ("java.lang.Character".equals(nameType) || "char".equals(nameType)) {
-      targetObj = source.charAt(1);
-    }
-
-    return targetObj;
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/Test.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/Test.java
deleted file mode 100644
index ea7dced..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/Test.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.supwisdom.leaveschool.user.util;
-
-import java.util.Date;
-
-import javax.persistence.Column;
-
-import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
-
-public class Test extends ABaseDomain {
-
-  /**
-   * 
-   */
-  private static final long serialVersionUID = 3545969960574885501L;
-  @Column
-  private String code = null;
-  @Column
-  private String name = null;
-  @Column
-  private Date date = null;
-  @Column
-  private Boolean enabled = null;
-  @Column
-  private Integer status = null;
-
-  public String getCode() {
-    return code;
-  }
-
-  public void setCode(String code) {
-    this.code = code;
-  }
-
-  public String getName() {
-    return name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public Date getDate() {
-    return date;
-  }
-
-  public void setDate(Date date) {
-    this.date = date;
-  }
-
-  public Boolean getEnabled() {
-    return enabled;
-  }
-
-  public void setEnabled(Boolean enabled) {
-    this.enabled = enabled;
-  }
-
-  public Integer getStatus() {
-    return status;
-  }
-
-  public void setStatus(Integer status) {
-    this.status = status;
-  }
-
-  @Override
-  public String toString() {
-    String s = "";
-    s+="id="+this.getId();
-    s += "&code="+String.valueOf(this.code);
-    s += "&name="+String.valueOf(this.name);
-    s += "&date="+String.valueOf(this.date);
-    s += "&enabled="+String.valueOf(this.enabled);
-    s += "&status="+String.valueOf(this.status);
-    return s;
-  }
-}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/Test2.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/Test2.java
deleted file mode 100644
index 67917d8..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/Test2.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.supwisdom.leaveschool.user.util;
-
-import java.util.Date;
-
-import javax.persistence.Column;
-
-import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
-
-public class Test2 extends ABaseDomain {
-
-  /**
-   * 
-   */
-  private static final long serialVersionUID = 3545969960574885501L;
-  @Column
-  private String name = null;
-  @Column
-  private String memo = null;
-  @Column
-  private Date date = null;
-  @Column
-  private Boolean enabled = null;
-  @Column
-  private Integer status = null;
-
-  public String getName() {
-    return name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public String getMemo() {
-    return memo;
-  }
-
-  public void setMemo(String memo) {
-    this.memo = memo;
-  }
-
-  public Date getDate() {
-    return date;
-  }
-
-  public void setDate(Date date) {
-    this.date = date;
-  }
-
-  public Boolean getEnabled() {
-    return enabled;
-  }
-
-  public void setEnabled(Boolean enabled) {
-    this.enabled = enabled;
-  }
-
-  public Integer getStatus() {
-    return status;
-  }
-
-  public void setStatus(Integer status) {
-    this.status = status;
-  }
-
-  @Override
-  public String toString() {
-    String s = "";
-    s+="id="+this.getId();
-    //s += "&code="+String.valueOf(this.code);
-    s += "&name="+String.valueOf(this.name);
-    s += "&memo="+String.valueOf(this.memo);
-    s += "&date="+String.valueOf(this.date);
-    s += "&enabled="+String.valueOf(this.enabled);
-    s += "&status="+String.valueOf(this.status);
-    return s;
-  }
-}