整理spring data jpa的autoconfigure
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
new file mode 100644
index 0000000..f209145
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/EnableInfrasDataJpa.java
@@ -0,0 +1,19 @@
+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
new file mode 100644
index 0000000..3db37f0
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaAutoConfiguration.java
@@ -0,0 +1,15 @@
+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
new file mode 100644
index 0000000..2e7ef5c
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/autoconfigure/InfrasDataJpaMarkerConfiguration.java
@@ -0,0 +1,17 @@
+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 dataJpaMarkerBean() {
+ 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
new file mode 100644
index 0000000..458d08d
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/configure/InfrasDataJpaConfigure.java
@@ -0,0 +1,12 @@
+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/leaveschool/jpa/domain/ABaseDomain.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/domain/ABaseDomain.java
similarity index 98%
rename from samples/user/src/main/java/com/supwisdom/leaveschool/jpa/domain/ABaseDomain.java
rename to samples/user/src/main/java/com/supwisdom/infras/data/jpa/domain/ABaseDomain.java
index 9aabafd..4c99db2 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/domain/ABaseDomain.java
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/domain/ABaseDomain.java
@@ -1,4 +1,4 @@
-package com.supwisdom.leaveschool.jpa.domain;
+package com.supwisdom.infras.data.jpa.domain;
import java.io.Serializable;
import java.util.Date;
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/repository/ABaseJpaRepositoryImpl.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/ABaseJpaRepositoryImpl.java
similarity index 94%
rename from samples/user/src/main/java/com/supwisdom/leaveschool/jpa/repository/ABaseJpaRepositoryImpl.java
rename to samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/ABaseJpaRepositoryImpl.java
index 531f524..2daf122 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/repository/ABaseJpaRepositoryImpl.java
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/ABaseJpaRepositoryImpl.java
@@ -1,4 +1,4 @@
-package com.supwisdom.leaveschool.jpa.repository;
+package com.supwisdom.infras.data.jpa.repository;
import java.util.Calendar;
import java.util.Map;
@@ -13,10 +13,10 @@
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
import org.springframework.data.repository.NoRepositoryBean;
-import com.supwisdom.leaveschool.jpa.domain.ABaseDomain;
+import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
@Transactional
-//@NoRepositoryBean
+@NoRepositoryBean
public class ABaseJpaRepositoryImpl<T extends ABaseDomain> extends SimpleJpaRepository<T, String> implements BaseJpaRepository<T> {
@SuppressWarnings("unused")
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
new file mode 100644
index 0000000..b533987
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/BaseJpaRepository.java
@@ -0,0 +1,66 @@
+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/leaveschool/jpa/config/BaseJpaRepositoryFactoryBean.java b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/support/BaseJpaRepositoryFactoryBean.java
similarity index 90%
rename from samples/user/src/main/java/com/supwisdom/leaveschool/jpa/config/BaseJpaRepositoryFactoryBean.java
rename to samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/support/BaseJpaRepositoryFactoryBean.java
index 0194bb0..ae4c0eb 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/config/BaseJpaRepositoryFactoryBean.java
+++ b/samples/user/src/main/java/com/supwisdom/infras/data/jpa/repository/support/BaseJpaRepositoryFactoryBean.java
@@ -1,4 +1,4 @@
-package com.supwisdom.leaveschool.jpa.config;
+package com.supwisdom.infras.data.jpa.repository.support;
import javax.persistence.EntityManager;
@@ -9,8 +9,8 @@
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.data.repository.core.support.RepositoryFactorySupport;
-import com.supwisdom.leaveschool.jpa.domain.ABaseDomain;
-import com.supwisdom.leaveschool.jpa.repository.ABaseJpaRepositoryImpl;
+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> {
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/config/JpaDataConfig.java b/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/config/JpaDataConfig.java
deleted file mode 100644
index 9980892..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/config/JpaDataConfig.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.supwisdom.leaveschool.jpa.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.data.web.config.EnableSpringDataWebSupport;
-
-//@Configuration
-//@EnableJpaRepositories(basePackages = "com.supwisdom.leaveschool.user.repository", repositoryFactoryBeanClass = BaseJpaRepositoryFactoryBean.class)
-//@EnableSpringDataWebSupport
-public class JpaDataConfig {
-
-}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/repository/BaseJpaRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/repository/BaseJpaRepository.java
deleted file mode 100644
index 12b44a0..0000000
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/jpa/repository/BaseJpaRepository.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.supwisdom.leaveschool.jpa.repository;
-
-import java.util.Map;
-
-import org.springframework.data.domain.Page;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.repository.NoRepositoryBean;
-
-import com.supwisdom.leaveschool.jpa.domain.ABaseDomain;
-
-@NoRepositoryBean
-public interface BaseJpaRepository<T extends ABaseDomain> extends JpaRepository<T, String> {
-
- public Page<T> selectPageList(int pageIndex, int pageSize, Map<String, Object> mapBean);
-
- public T selectById(String id);
-
- public T insert(T entity);
-
- public T update(T entity);
-
-}
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 6377494..70a4a4e 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.leaveschool.jpa.domain.ABaseDomain;
+import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
import lombok.Data;
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 a219ac0..097b648 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
@@ -10,7 +10,7 @@
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
-import com.supwisdom.leaveschool.jpa.repository.BaseJpaRepository;
+import com.supwisdom.infras.data.jpa.repository.BaseJpaRepository;
import com.supwisdom.leaveschool.user.domain.User;
@Repository
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
index 20b15e3..ea7dced 100644
--- 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
@@ -4,7 +4,7 @@
import javax.persistence.Column;
-import com.supwisdom.leaveschool.jpa.domain.ABaseDomain;
+import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
public class Test extends ABaseDomain {
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
index 7f4b855..67917d8 100644
--- 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
@@ -4,7 +4,7 @@
import javax.persistence.Column;
-import com.supwisdom.leaveschool.jpa.domain.ABaseDomain;
+import com.supwisdom.infras.data.jpa.domain.ABaseDomain;
public class Test2 extends ABaseDomain {
diff --git a/samples/user/src/main/resources/META-INF/spring.factories b/samples/user/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..85d945b
--- /dev/null
+++ b/samples/user/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,3 @@
+# Auto Configure
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+com.supwisdom.infras.data.jpa.autoconfigure.InfrasDataJpaAutoConfiguration
\ No newline at end of file
diff --git a/samples/user/src/main/resources/application.yml b/samples/user/src/main/resources/application.yml
index 9f6ca40..5493de8 100755
--- a/samples/user/src/main/resources/application.yml
+++ b/samples/user/src/main/resources/application.yml
@@ -39,3 +39,6 @@
include-path: true
include-timestamp: true
include-status: true
+ data:
+ jpa:
+ basePackages: com.supwisdom.leaveschool.user.repository