Browse Source

支持无配置可启动使用 Gitee issues/ILJQA

hubin 6 years ago
parent
commit
31cb723bd6

+ 4 - 0
mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/autoconfigure/MybatisPlusProperties.java

@@ -14,6 +14,7 @@ import org.springframework.core.io.support.ResourcePatternResolver;
 
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 
 /**
  * Configuration properties for MyBatis.
@@ -184,6 +185,9 @@ public class MybatisPlusProperties {
     }
 
     public GlobalConfig getGlobalConfig() {
+        if (null == globalConfig) {
+            return GlobalConfigUtils.defaults();
+        }
         return globalConfig;
     }
 

+ 4 - 8
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils.java

@@ -44,11 +44,6 @@ import com.baomidou.mybatisplus.core.injector.ISqlInjector;
  * @since 2017-06-15
  */
 public class GlobalConfigUtils {
-
-    /**
-     * 默认参数
-     */
-    public static final GlobalConfig DEFAULT = defaults();
     /**
      * 日志
      */
@@ -68,7 +63,7 @@ public class GlobalConfigUtils {
      */
     public static SqlSessionFactory currentSessionFactory(Class<?> clazz) {
         String configMark = TableInfoHelper.getTableInfo(clazz).getConfigMark();
-        GlobalConfig mybatisGlobalConfig = GlobalConfigUtils.getGlobalConfig(configMark);
+        GlobalConfig mybatisGlobalConfig = getGlobalConfig(configMark);
         return mybatisGlobalConfig.getSqlSessionFactory();
     }
 
@@ -128,8 +123,9 @@ public class GlobalConfigUtils {
         if (cache == null) {
             // 没有获取全局配置初始全局配置
             logger.debug("DeBug: MyBatis Plus Global configuration Initializing !");
-            GLOBAL_CONFIG.put(configMark, DEFAULT);
-            return DEFAULT;
+            GlobalConfig globalConfig = defaults();
+            GLOBAL_CONFIG.put(configMark, globalConfig);
+            return globalConfig;
         }
         return cache;
     }

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -163,7 +163,7 @@ public class TableInfoHelper {
             globalConfig = GlobalConfigUtils.getGlobalConfig(builderAssistant.getConfiguration());
         } else {
             // 兼容测试场景
-            globalConfig = GlobalConfigUtils.DEFAULT;
+            globalConfig = GlobalConfigUtils.defaults();
         }
 
         /***

+ 34 - 23
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -15,16 +15,24 @@
  */
 package com.baomidou.mybatisplus.extension.spring;
 
-import com.baomidou.mybatisplus.core.MybatisConfiguration;
-import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
-import com.baomidou.mybatisplus.core.config.GlobalConfig;
-import com.baomidou.mybatisplus.core.enums.IEnum;
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
-import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
-import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
-import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
+import static org.springframework.util.Assert.notNull;
+import static org.springframework.util.Assert.state;
+import static org.springframework.util.ObjectUtils.isEmpty;
+import static org.springframework.util.StringUtils.hasLength;
+import static org.springframework.util.StringUtils.tokenizeToStringArray;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.sql.DataSource;
+
 import org.apache.ibatis.builder.xml.XMLMapperBuilder;
 import org.apache.ibatis.cache.Cache;
 import org.apache.ibatis.executor.ErrorContext;
@@ -54,17 +62,16 @@ import org.springframework.core.NestedIOException;
 import org.springframework.core.io.Resource;
 import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
 
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.*;
-
-import static org.springframework.util.Assert.notNull;
-import static org.springframework.util.Assert.state;
-import static org.springframework.util.ObjectUtils.isEmpty;
-import static org.springframework.util.StringUtils.hasLength;
-import static org.springframework.util.StringUtils.tokenizeToStringArray;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.core.enums.IEnum;
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
+import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
+import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
 
 /**
  * <p>
@@ -126,7 +133,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
 
     private ObjectWrapperFactory objectWrapperFactory;
 
-    private GlobalConfig globalConfig = GlobalConfigUtils.defaults();
+    private GlobalConfig globalConfig;
 
     // TODO 注入全局配置
     public void setGlobalConfig(GlobalConfig globalConfig) {
@@ -559,8 +566,12 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
         }
 
         configuration.setEnvironment(new Environment(this.environment, this.transactionFactory, this.dataSource));
+        // 设置默认值
+        if(null == globalConfig) {
+            globalConfig = GlobalConfigUtils.defaults();
+        }
         // 设置元数据相关
-//        GlobalConfigUtils.setMetaData(dataSource, globalConfig);
+        // GlobalConfigUtils.setMetaData(dataSource, globalConfig);
         try (Connection connection = dataSource.getConnection()) {
             // 设置全局关键字
             //globalConfig.getDbConfig().setSqlKeywords(connection.getMetaData().getSQLKeywords());