|
@@ -1,67 +1,67 @@
|
|
|
-package net.chenlin.dp.orm.mybatis;
|
|
|
-
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
-import org.mybatis.spring.SqlSessionFactoryBean;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.core.io.Resource;
|
|
|
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
|
-import org.springframework.core.io.support.ResourcePatternResolver;
|
|
|
-import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
|
|
|
-import org.springframework.core.type.classreading.MetadataReader;
|
|
|
-import org.springframework.core.type.classreading.MetadataReaderFactory;
|
|
|
-import org.springframework.util.ClassUtils;
|
|
|
-
|
|
|
-/**
|
|
|
- * mybatis支持扫描多个包路径
|
|
|
- *
|
|
|
- * @author ZhouChenglin
|
|
|
- * @email yczclcn@163.com
|
|
|
- * @url www.chenlintech.com
|
|
|
- * @date 2017年8月8日 上午11:28:59
|
|
|
- */
|
|
|
-public class PackagesSqlSessionFactoryBean extends SqlSessionFactoryBean {
|
|
|
-
|
|
|
- static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
|
|
|
-
|
|
|
- private static Logger logger = LoggerFactory.getLogger(PackagesSqlSessionFactoryBean.class);
|
|
|
-
|
|
|
- @Override
|
|
|
- public void setTypeAliasesPackage(String typeAliasesPackage) {
|
|
|
- ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
|
|
|
- MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
|
|
|
- typeAliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
|
|
|
- + ClassUtils.convertClassNameToResourcePath(typeAliasesPackage) + "/" + DEFAULT_RESOURCE_PATTERN;
|
|
|
-
|
|
|
- try {
|
|
|
- List<String> result = new ArrayList<String>();
|
|
|
- Resource[] resources = resolver.getResources(typeAliasesPackage);
|
|
|
- if (resources != null && resources.length > 0) {
|
|
|
- MetadataReader metadataReader = null;
|
|
|
- for (Resource resource : resources) {
|
|
|
- if (resource.isReadable()) {
|
|
|
- metadataReader = metadataReaderFactory.getMetadataReader(resource);
|
|
|
- try {
|
|
|
- result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage()
|
|
|
- .getName());
|
|
|
- } catch (ClassNotFoundException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (result.size() > 0) {
|
|
|
- super.setTypeAliasesPackage(StringUtils.join(result.toArray(), ","));
|
|
|
- } else {
|
|
|
- logger.warn("参数typeAliasesPackage:" + typeAliasesPackage + ",未找到任何包");
|
|
|
- }
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
+package net.chenlin.dp.common.support.orm.mybatis;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.mybatis.spring.SqlSessionFactoryBean;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.core.io.Resource;
|
|
|
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
|
+import org.springframework.core.io.support.ResourcePatternResolver;
|
|
|
+import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
|
|
|
+import org.springframework.core.type.classreading.MetadataReader;
|
|
|
+import org.springframework.core.type.classreading.MetadataReaderFactory;
|
|
|
+import org.springframework.util.ClassUtils;
|
|
|
+
|
|
|
+/**
|
|
|
+ * mybatis支持扫描多个包路径
|
|
|
+ *
|
|
|
+ * @author ZhouChenglin
|
|
|
+ * @email yczclcn@163.com
|
|
|
+ * @url www.chenlintech.com
|
|
|
+ * @date 2017年8月8日 上午11:28:59
|
|
|
+ */
|
|
|
+public class PackagesSqlSessionFactoryBean extends SqlSessionFactoryBean {
|
|
|
+
|
|
|
+ static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
|
|
|
+
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(PackagesSqlSessionFactoryBean.class);
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setTypeAliasesPackage(String typeAliasesPackage) {
|
|
|
+ ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
|
|
|
+ MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
|
|
|
+ typeAliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
|
|
|
+ + ClassUtils.convertClassNameToResourcePath(typeAliasesPackage) + "/" + DEFAULT_RESOURCE_PATTERN;
|
|
|
+
|
|
|
+ try {
|
|
|
+ List<String> result = new ArrayList<String>();
|
|
|
+ Resource[] resources = resolver.getResources(typeAliasesPackage);
|
|
|
+ if (resources != null && resources.length > 0) {
|
|
|
+ MetadataReader metadataReader = null;
|
|
|
+ for (Resource resource : resources) {
|
|
|
+ if (resource.isReadable()) {
|
|
|
+ metadataReader = metadataReaderFactory.getMetadataReader(resource);
|
|
|
+ try {
|
|
|
+ result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage()
|
|
|
+ .getName());
|
|
|
+ } catch (ClassNotFoundException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (result.size() > 0) {
|
|
|
+ super.setTypeAliasesPackage(StringUtils.join(result.toArray(), ","));
|
|
|
+ } else {
|
|
|
+ logger.warn("参数typeAliasesPackage:" + typeAliasesPackage + ",未找到任何包");
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|