diff --git a/samples/user/pom.xml b/samples/user/pom.xml
index 23bbb2e..e7d6492 100644
--- a/samples/user/pom.xml
+++ b/samples/user/pom.xml
@@ -31,21 +31,6 @@
     </dependency>
 
     <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-data-jpa</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.projectlombok</groupId>
-      <artifactId>lombok</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-    </dependency>
-
-    <dependency>
       <groupId>commons-collections</groupId>
       <artifactId>commons-collections</artifactId>
     </dependency>
@@ -78,6 +63,16 @@
     </dependency>
      -->
 
+    <dependency>
+      <groupId>com.supwisdom.infras</groupId>
+      <artifactId>infras-data-jpa</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
     <!-- Test things -->
     <dependency>
       <groupId>org.testng</groupId>
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/EnableInfrasDataJpa.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/EnableInfrasDataJpa.java
deleted file mode 100644
index f209145..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/EnableInfrasDataJpa.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.supwisdom.infras.data.jpa;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.springframework.context.annotation.Import;
-
-import com.supwisdom.infras.data.jpa.autoconfigure.InfrasDataJpaMarkerConfiguration;
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Import(InfrasDataJpaMarkerConfiguration.class)
-public @interface EnableInfrasDataJpa {
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaAutoConfiguration.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaAutoConfiguration.java
deleted file mode 100644
index 3db37f0..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaAutoConfiguration.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.supwisdom.infras.data.jpa.autoconfigure;
-
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import com.supwisdom.infras.data.jpa.configure.InfrasDataJpaConfigure;
-
-@Configuration
-@ConditionalOnBean(InfrasDataJpaMarkerConfiguration.Marker.class)
-@Import(InfrasDataJpaConfigure.class)
-//@AutoConfigureAfter(JpaRepositoriesAutoConfiguration.class)
-public class InfrasDataJpaAutoConfiguration {
-  
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaMarkerConfiguration.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaMarkerConfiguration.java
deleted file mode 100644
index a8a35aa..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaMarkerConfiguration.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.supwisdom.infras.data.jpa.autoconfigure;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class InfrasDataJpaMarkerConfiguration {
-  
-  @Bean
-  public Marker infrasDataJpaMarkerBean() {
-    return new Marker();
-  }
-
-  class Marker {
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/configure/InfrasDataJpaConfigure.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/configure/InfrasDataJpaConfigure.java
deleted file mode 100644
index 458d08d..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/configure/InfrasDataJpaConfigure.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.supwisdom.infras.data.jpa.configure;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.data.web.config.EnableSpringDataWebSupport;
-
-@Configuration
-@EnableJpaRepositories(basePackages = "${infras.data.jpa.basePackages:com.supwisdom.**.repository}")
-@EnableSpringDataWebSupport
-public class InfrasDataJpaConfigure {
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/domain/ABaseDomain.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/domain/ABaseDomain.java
deleted file mode 100644
index 4c99db2..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/domain/ABaseDomain.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.supwisdom.infras.data.jpa.domain;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import javax.persistence.Column;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
-
-import org.hibernate.annotations.GenericGenerator;
-
-@MappedSuperclass
-public abstract class ABaseDomain implements Serializable {
-
-  /**
-   * 
-   */
-  private static final long serialVersionUID = 8023881887762314483L;
-
-  @Id
-  @GeneratedValue(generator = "uuidStrategy")
-  @GenericGenerator(name = "uuidStrategy", strategy = "uuid")
-  //@ApiModelProperty(value = "ID", required = false, example = "")
-  @Column(name = "ID")
-  private String id;
-
-  /**
-   * 获取主键
-   */
-  public String getId() {
-    return id;
-  }
-
-  /**
-   * 设置ID属性,主要用于人工指定键值
-   */
-  public void setId(String id) {
-    this.id = id;
-  }
-
-  //@ApiModelProperty(value = "CompanyID", required = true, example = "1")
-  @Column(name = "COMPANY_ID")
-  private String companyId = null;
-
-  //@ApiModelProperty(value = "是否删除", hidden = true, example = "false")
-  @Column(name = "DELETED")
-  private Boolean deleted = false;
-
-  //@ApiModelProperty(value = "创建人", hidden = true)
-  @Column(name = "ADD_ACCOUNT")
-  private String addAccount = null;
-
-  //@ApiModelProperty(value = "创建时间", hidden = true)
-  @Column(name = "ADD_TIME")
-  private Date addTime = null;
-
-  //@ApiModelProperty(value = "修改人", hidden = true)
-  @Column(name = "EDIT_ACCOUNT")
-  private String editAccount = null;
-
-  //@ApiModelProperty(value = "修改时间", hidden = true)
-  @Column(name = "EDIT_TIME")
-  private Date editTime = null;
-
-  //@ApiModelProperty(value = "删除人", hidden = true)
-  @Column(name = "DELETE_ACCOUNT")
-  private String deleteAccount = null;
-
-  //@ApiModelProperty(value = "删除时间", hidden = true)
-  @Column(name = "DELETE_TIME")
-  private Date deleteTime = null;
-
-  public String getCompanyId() {
-    return companyId;
-  }
-
-  public void setCompanyId(String companyId) {
-    this.companyId = companyId;
-  }
-
-  public Boolean isDeleted() {
-    return deleted;
-  }
-
-  public void setDeleted(Boolean deleted) {
-    this.deleted = deleted;
-  }
-
-  public String getAddAccount() {
-    return addAccount;
-  }
-
-  public void setAddAccount(String addAccount) {
-    this.addAccount = addAccount;
-  }
-
-  public Date getAddTime() {
-    return addTime;
-  }
-
-  public void setAddTime(Date addTime) {
-    this.addTime = addTime;
-  }
-
-  public String getEditAccount() {
-    return editAccount;
-  }
-
-  public void setEditAccount(String editAccount) {
-    this.editAccount = editAccount;
-  }
-
-  public Date getEditTime() {
-    return editTime;
-  }
-
-  public void setEditTime(Date editTime) {
-    this.editTime = editTime;
-  }
-
-  public String getDeleteAccount() {
-    return deleteAccount;
-  }
-
-  public void setDeleteAccount(String deleteAccount) {
-    this.deleteAccount = deleteAccount;
-  }
-
-  public Date getDeleteTime() {
-    return deleteTime;
-  }
-
-  public void setDeleteTime(Date deleteTime) {
-    this.deleteTime = deleteTime;
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/ABaseJpaRepositoryImpl.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/ABaseJpaRepositoryImpl.java
deleted file mode 100644
index 2daf122..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/ABaseJpaRepositoryImpl.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.supwisdom.infras.data.jpa.repository;
-
-import java.util.Calendar;
-import java.util.Map;
-import java.util.Optional;
-
-import javax.persistence.EntityManager;
-import javax.transaction.Transactional;
-
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.repository.support.JpaEntityInformation;
-import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
-import org.springframework.data.repository.NoRepositoryBean;
-
-import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
-
-@Transactional
-@NoRepositoryBean
-public class ABaseJpaRepositoryImpl<T extends ABaseDomain> extends SimpleJpaRepository<T, String> implements BaseJpaRepository<T> {
-
-  @SuppressWarnings("unused")
-  private final EntityManager em;
-
-  public ABaseJpaRepositoryImpl(Class<T> domainClass, EntityManager em) {
-    super(domainClass, em);
-    this.em = em;
-  }
-
-  public ABaseJpaRepositoryImpl(JpaEntityInformation<T, String> information, EntityManager em) {
-    super(information, em);
-    this.em = em;
-  }
-  
-  public Page<T> selectPageList(int pageIndex, int pageSize, Map<String, Object> mapBean) {
-
-    PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
-
-    Page<T> page = this.findAll(pageRequest);
-
-    return page;
-  }
-
-  public T selectById(String id) {
-
-    try {
-      Optional<T> entity = this.findById(id);
-
-      return entity.get();
-    } catch (RuntimeException e) {
-      System.out.println("RuntimeException:" + e.getMessage());
-    } catch (Exception e) {
-      System.out.println("Exception:" + e.getMessage());
-    }
-
-    return null;
-  }
-
-  public T insert(T entity) {
-
-    if (entity.getCompanyId() == null || entity.getCompanyId().isEmpty()) {
-      entity.setCompanyId("1");
-    }
-
-    entity.setDeleted(false);
-    //entity.setAddAccount(AuthUtil.getRemoteUser()); // FIXME: setAddAccount
-    entity.setAddTime(Calendar.getInstance().getTime());
-
-    T e = this.save(entity);
-
-    return e;
-  }
-
-  public T update(T entity) {
-
-    //entity.setEditAccount(AuthUtil.getRemoteUser()); // FIXME: setEditAccount
-    entity.setEditTime(Calendar.getInstance().getTime());
-
-    T e = this.save(entity);
-
-    return e;
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/BaseJpaRepository.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/BaseJpaRepository.java
deleted file mode 100644
index b533987..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/BaseJpaRepository.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.supwisdom.infras.data.jpa.repository;
-
-import java.util.Calendar;
-import java.util.Map;
-import java.util.Optional;
-
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.repository.NoRepositoryBean;
-
-import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
-
-@NoRepositoryBean
-public interface BaseJpaRepository<T extends ABaseDomain> extends JpaRepository<T, String> {
-  
-  public default Page<T> selectPageList(int pageIndex, int pageSize, Map<String, Object> mapBean) {
-
-    PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
-
-    Page<T> page = this.findAll(pageRequest);
-
-    return page;
-  }
-  
-  public default T selectById(String id) {
-
-    try {
-      Optional<T> entity = this.findById(id);
-
-      return entity.get();
-    } catch (RuntimeException e) {
-      System.out.println("RuntimeException:" + e.getMessage());
-    } catch (Exception e) {
-      System.out.println("Exception:" + e.getMessage());
-    }
-
-    return null;
-  }
-  
-  public default T insert(T entity) {
-
-    if (entity.getCompanyId() == null || entity.getCompanyId().isEmpty()) {
-      entity.setCompanyId("1");
-    }
-
-    entity.setDeleted(false);
-    //entity.setAddAccount(AuthUtil.getRemoteUser()); // FIXME: setAddAccount
-    entity.setAddTime(Calendar.getInstance().getTime());
-
-    T e = this.save(entity);
-
-    return e;
-  }
-  
-  public default T update(T entity) {
-
-    //entity.setEditAccount(AuthUtil.getRemoteUser()); // FIXME: setEditAccount
-    entity.setEditTime(Calendar.getInstance().getTime());
-
-    T e = this.save(entity);
-
-    return e;
-  }
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/support/BaseJpaRepositoryFactoryBean.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/support/BaseJpaRepositoryFactoryBean.java
deleted file mode 100644
index ae4c0eb..0000000
--- a/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/support/BaseJpaRepositoryFactoryBean.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.supwisdom.infras.data.jpa.repository.support;
-
-import javax.persistence.EntityManager;
-
-import org.springframework.data.jpa.repository.support.JpaRepositoryFactory;
-import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean;
-import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
-import org.springframework.data.repository.core.RepositoryInformation;
-import org.springframework.data.repository.core.RepositoryMetadata;
-import org.springframework.data.repository.core.support.RepositoryFactorySupport;
-
-import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
-import com.supwisdom.infras.data.jpa.repository.ABaseJpaRepositoryImpl;
-
-public class BaseJpaRepositoryFactoryBean<T extends ABaseJpaRepositoryImpl<S>, S extends ABaseDomain> extends JpaRepositoryFactoryBean<T, S, String> {
-
-  public BaseJpaRepositoryFactoryBean(Class<? extends T> repositoryInterface) {
-    super(repositoryInterface);
-  }
-
-  @SuppressWarnings("rawtypes")
-  protected RepositoryFactorySupport createRepositoryFactory(EntityManager em) {
-    return new BaseJpaRepositoryFactory(em);
-  }
-
-  private static class BaseJpaRepositoryFactory<T extends ABaseDomain> extends JpaRepositoryFactory {
-
-    private final EntityManager em;
-
-    public BaseJpaRepositoryFactory(EntityManager em) {
-      super(em);
-      this.em = em;
-    }
-
-    protected SimpleJpaRepository<T, String> getTargetRepository(RepositoryInformation information, EntityManager em) {
-      Class<T> domainClass = (Class<T>) information.getDomainType();
-      
-      return new ABaseJpaRepositoryImpl<T>(domainClass, em);
-    }
-
-//    @SuppressWarnings("unchecked")
-//    protected Object getTargetRepository(RepositoryMetadata metadata) {
-//      return new ABaseJpaRepositoryImpl<T>((Class<T>) metadata.getDomainType(), this.em);
-//    }
-
-    protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
-      return ABaseJpaRepositoryImpl.class;
-    }
-
-  }
-
-}
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 70a4a4e..8af51c9 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
@@ -6,11 +6,8 @@
 
 import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
 
-import lombok.Data;
-
 @Entity
 @Table(name = "TB_U_USER")
-@Data
 public class User extends ABaseDomain {
 
   /**
diff --git a/samples/user/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/samples/user/src/main/resources/META-INF/additional-spring-configuration-metadata.json
deleted file mode 100644
index 68f8804..0000000
--- a/samples/user/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "hints": [],
-  "groups": [],
-  "properties": [
-    {
-      "name": "infras.data.jpa.basePackages",
-      "description": "Jpa repository's base packages",
-      "defaultValue": "com.supwisdom.**.repository",
-      "type": "java.lang.String"
-    }
-  ]
-}
diff --git a/samples/user/src/main/resources/META-INF/spring.factories b/samples/user/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 85d945b..0000000
--- a/samples/user/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,3 +0,0 @@
-# Auto Configure
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-com.supwisdom.infras.data.jpa.autoconfigure.InfrasDataJpaAutoConfiguration
\ No newline at end of file
