浏览代码

优化datasource配置

ZhouChenglin 7 年之前
父节点
当前提交
94efc1dc78

+ 4 - 4
src/main/java/net/chenlin/dp/druid/DynamicDataSourceConfig.java → src/main/java/net/chenlin/dp/common/support/orm/db/DynamicDataSourceConfig.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.druid;
+package net.chenlin.dp.common.support.orm.db;
 
 import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -22,7 +22,7 @@ import java.util.Map;
 public class DynamicDataSourceConfig {
 
     @Bean
-    @ConfigurationProperties("spring.datasource.druid.default")
+    @ConfigurationProperties("spring.datasource.druid.masterDataSource")
     public DataSource defaultDataSource(){
         return DruidDataSourceBuilder.create().build();
     }
@@ -30,8 +30,8 @@ public class DynamicDataSourceConfig {
     @Bean
     @Primary
     public DynamicDataSource dataSource(DataSource defaultDataSource) {
-        Map<String, DataSource> targetDataSources = new HashMap<>();
-        targetDataSources.put(DataSourceContext.DEFAULT.getName(), defaultDataSource);
+        Map<String, DataSource> targetDataSources = new HashMap<>(2);
+        targetDataSources.put(DataSourceEnum.MASTER.getName(), defaultDataSource);
         return new DynamicDataSource(defaultDataSource, targetDataSources);
     }
 }

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/Dialect.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/Dialect.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 /**
  * 数据库方言抽象类

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/DialectFactory.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/DialectFactory.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 import org.apache.ibatis.session.Configuration;
 

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/MSDialect.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/MSDialect.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 /**
  * MSSQL 数据库方言

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/MSPageHepler.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/MSPageHepler.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/MySql5Dialect.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/MySql5Dialect.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 /**
  * MySQL数据库方言

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/MySql5PageHepler.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/MySql5PageHepler.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/OracleDialect.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/OracleDialect.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 /**
  * oracle方言

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/PostgreDialect.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/PostgreDialect.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 /**
  * Postgre 数据库 方言

+ 1 - 1
src/main/java/net/chenlin/dp/orm/dialect/PostgrePageHepler.java → src/main/java/net/chenlin/dp/common/support/orm/dialect/PostgrePageHepler.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.dialect;
+package net.chenlin.dp.common.support.orm.dialect;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;

+ 67 - 67
src/main/java/net/chenlin/dp/orm/mybatis/PackagesSqlSessionFactoryBean.java → src/main/java/net/chenlin/dp/common/support/orm/mybatis/PackagesSqlSessionFactoryBean.java

@@ -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();
+		}
+	}
+
+}

+ 1 - 1
src/main/java/net/chenlin/dp/orm/plugins/PaginationResultSetHandlerInterceptor.java → src/main/java/net/chenlin/dp/common/support/orm/plugins/PaginationResultSetHandlerInterceptor.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.plugins;
+package net.chenlin.dp.common.support.orm.plugins;
 
 import java.sql.Statement;
 import java.util.Properties;

+ 3 - 3
src/main/java/net/chenlin/dp/orm/plugins/PaginationStatementHandlerInterceptor.java → src/main/java/net/chenlin/dp/common/support/orm/plugins/PaginationStatementHandlerInterceptor.java

@@ -1,4 +1,4 @@
-package net.chenlin.dp.orm.plugins;
+package net.chenlin.dp.common.support.orm.plugins;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -26,8 +26,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import net.chenlin.dp.common.entity.Page;
-import net.chenlin.dp.orm.dialect.Dialect;
-import net.chenlin.dp.orm.dialect.DialectFactory;
+import net.chenlin.dp.common.support.orm.dialect.Dialect;
+import net.chenlin.dp.common.support.orm.dialect.DialectFactory;
 
 /**
  * PaginationStatementHandlerInterceptor

+ 5 - 1
src/main/resources/application-dev.yml

@@ -3,7 +3,11 @@ spring:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.jdbc.Driver
         druid:
-            default:  #默认数据源
+            masterDataSource:  #主库数据源
+              url: jdbc:mysql://192.168.180.130:3306/dp-lte-boot?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
+              username: root
+              password: root
+            slaveDataSource:  #从库数据源
               url: jdbc:mysql://192.168.180.130:3306/dp-lte-boot?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
               username: root
               password: root

+ 3 - 3
src/main/resources/mybatis.xml

@@ -4,7 +4,7 @@
 <configuration>
 
     <properties>
-        <property name="dialectClass" value="net.chenlin.dp.orm.dialect.MySql5Dialect"/>
+        <property name="dialectClass" value="net.chenlin.dp.common.support.orm.dialect.MySql5Dialect"/>
     </properties>
 	
 	<!-- 配置mybatis的缓存,延迟加载等等一系列属性 -->
@@ -57,8 +57,8 @@
     </settings>
     
     <plugins>
-        <plugin interceptor="net.chenlin.dp.orm.plugins.PaginationResultSetHandlerInterceptor"/>
-        <plugin interceptor="net.chenlin.dp.orm.plugins.PaginationStatementHandlerInterceptor"/>
+        <plugin interceptor="net.chenlin.dp.common.support.orm.plugins.PaginationResultSetHandlerInterceptor"/>
+        <plugin interceptor="net.chenlin.dp.common.support.orm.plugins.PaginationStatementHandlerInterceptor"/>
     </plugins>
     
 </configuration>