Browse Source

合并DbConfig,修复starter.

nieqiurong 7 years ago
parent
commit
fd09e1c43c

+ 5 - 58
mybatis-plus-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json

@@ -1,7 +1,7 @@
 {
     "hints": [
         {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
+            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig",
             "name": "mybatis-plus.global-config.db-config.id-type",
             "type": "java.lang.Integer",
             "description": "主键类型",
@@ -25,7 +25,7 @@
             ]
         },
         {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
+            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig",
             "name": "mybatis-plus.global-config.db-config.field-strategy",
             "type": "java.lang.Integer",
             "description": "字段验证策略",
@@ -64,66 +64,13 @@
             "type": "com.baomidou.mybatisplus.core.config.GlobalConfig"
         },
         {
-            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig",
+            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig",
             "name": "mybatis-plus.global-config.db-config",
             "sourceMethod": "getDbConfig()",
-            "type": "com.baomidou.mybatisplus.core.config.DbConfig"
+            "type": "com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig"
         }
     ],
     "properties": [
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
-            "name": "mybatis-plus.global-config.db-config.capital-mode",
-            "type": "java.lang.Boolean",
-            "description": "是否大写命名"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
-            "name": "mybatis-plus.global-config.db-config.db-column-underline",
-            "type": "java.lang.Boolean",
-            "description": "是否使用下划线命名"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
-            "name": "mybatis-plus.global-config.logic-delete-value",
-            "type": "java.lang.String",
-            "description": "逻辑删除全局值"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
-            "name": "mybatis-plus.global-config.db-config.logic-not-delete-value",
-            "type": "java.lang.String",
-            "description": "逻辑未删除全局值"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.DbConfig",
-            "name": "mybatis-plus.global-config.db-config.key-generator",
-            "type": "java.lang.String",
-            "description": "表关键词 key 生成器"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig",
-            "name": "mybatis-plus.global-config.meta-object-handler",
-            "type": "java.lang.String",
-            "description": "元对象字段填充控制器"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig",
-            "name": "mybatis-plus.global-config.refresh-mapper",
-            "type": "java.lang.Boolean",
-            "description": "是否动态刷新mapper"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.core.config.GlobalConfig",
-            "name": "mybatis-plus.global-config.sql-injector",
-            "type": "java.lang.String",
-            "description": "SQL注入器"
-        },
-        {
-            "sourceType": "com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties",
-            "name": "mybatis-plus.type-enums-package",
-            "type": "java.lang.String",
-            "description": "自定义枚举包"
-        }
+
     ]
 }

+ 0 - 75
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/config/DbConfig.java

@@ -1,75 +0,0 @@
-package com.baomidou.mybatisplus.core.config;
-
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.core.handlers.SqlReservedWordsHandler;
-import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * 数据库相关配置
- */
-@Data
-@Accessors(chain = true)
-public class DbConfig {
-
-    /**
-     * 数据库类型
-     */
-    private DbType dbType;
-    /**
-     * 主键类型(默认 ID_WORKER)
-     */
-    private IdType idType = IdType.ID_WORKER;
-    /**
-     * 表名前缀
-     */
-    private String tablePrefix;
-    /**
-     * 表名、是否使用下划线命名(默认 true:默认数据库表下划线命名)
-     */
-    private boolean tableUnderline = true;
-    /**
-     * 字段名、是否使用下划线命名(默认 true:默认数据库字段下划线命名)
-     */
-    private boolean columnUnderline = true;
-    /**
-     * 大写命名
-     */
-    private boolean capitalMode = false;
-    /**
-     * 表关键词 key 生成器
-     */
-    private IKeyGenerator keyGenerator;
-    /**
-     * 逻辑删除全局值(默认 0、否)
-     */
-    private String logicDeleteValue = "0";
-    /**
-     * 逻辑未删除全局值(默认 1、是)
-     */
-    private String logicNotDeleteValue = "1";
-    /**
-     * 字段验证策略
-     */
-    private FieldStrategy fieldStrategy = FieldStrategy.NOT_NULL;
-    /**
-     * Sql 保留字处理器
-     */
-    private SqlReservedWordsHandler reservedWordsHandler = SqlReservedWordsHandler.getInstance();
-
-
-    public DbConfig setIdType(int idType) {
-        this.idType = IdType.getIdType(idType);
-        return this;
-    }
-
-    public DbConfig setFieldStrategy(int fieldStrategy) {
-        this.fieldStrategy = FieldStrategy.getFieldStrategy(fieldStrategy);
-        return this;
-    }
-
-}

+ 54 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/config/GlobalConfig.java

@@ -19,6 +19,11 @@ import java.io.Serializable;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
 
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.core.handlers.SqlReservedWordsHandler;
+import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 
@@ -88,4 +93,53 @@ public class GlobalConfig implements Serializable {
         }
         return sqlSessionFactory;
     }
+
+    @Data
+    public static class DbConfig{
+        /**
+         * 数据库类型
+         */
+        private DbType dbType;
+        /**
+         * 主键类型(默认 ID_WORKER)
+         */
+        private IdType idType = IdType.ID_WORKER;
+        /**
+         * 表名前缀
+         */
+        private String tablePrefix;
+        /**
+         * 表名、是否使用下划线命名(默认 true:默认数据库表下划线命名)
+         */
+        private boolean tableUnderline = true;
+        /**
+         * 字段名、是否使用下划线命名(默认 true:默认数据库字段下划线命名)
+         */
+        private boolean columnUnderline = true;
+        /**
+         * 大写命名
+         */
+        private boolean capitalMode = false;
+        /**
+         * 表关键词 key 生成器
+         */
+        private IKeyGenerator keyGenerator;
+        /**
+         * 逻辑删除全局值(默认 0、否)
+         */
+        private String logicDeleteValue = "0";
+        /**
+         * 逻辑未删除全局值(默认 1、是)
+         */
+        private String logicNotDeleteValue = "1";
+        /**
+         * 字段验证策略
+         */
+        private FieldStrategy fieldStrategy = FieldStrategy.NOT_NULL;
+        /**
+         * Sql 保留字处理器
+         */
+        private SqlReservedWordsHandler reservedWordsHandler = SqlReservedWordsHandler.getInstance();
+
+    }
 }

+ 5 - 5
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java

@@ -23,7 +23,7 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.SqlCondition;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.core.config.DbConfig;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 /**
@@ -98,7 +98,7 @@ public class TableFieldInfo {
      * 存在 TableField 注解构造函数
      * </p>
      */
-    public TableFieldInfo(boolean underCamel, DbConfig dbConfig, TableInfo tableInfo,
+    public TableFieldInfo(boolean underCamel, GlobalConfig.DbConfig dbConfig, TableInfo tableInfo,
                           String column, String el, Field field, TableField tableField) {
         this.property = field.getName();
         this.propertyType = field.getType();
@@ -139,7 +139,7 @@ public class TableFieldInfo {
         this.fieldFill = tableField.fill();
     }
 
-    public TableFieldInfo(boolean underCamel, DbConfig dbConfig, TableInfo tableInfo, Field field) {
+    public TableFieldInfo(boolean underCamel, GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field) {
         if (dbConfig.isColumnUnderline()) {
             /* 开启字段下划线申明 */
             this.setColumn(dbConfig, StringUtils.camelToUnderline(field.getName()));
@@ -166,7 +166,7 @@ public class TableFieldInfo {
      * @param dbConfig 数据库全局配置
      * @param field    字段属性对象
      */
-    private boolean initLogicDelete(DbConfig dbConfig, Field field) {
+    private boolean initLogicDelete(GlobalConfig.DbConfig dbConfig, Field field) {
         if (null == dbConfig.getLogicDeleteValue()) {
             // 未设置逻辑删除值不进行
             return false;
@@ -201,7 +201,7 @@ public class TableFieldInfo {
         return column;
     }
 
-    public void setColumn(DbConfig dbConfig, String column) {
+    public void setColumn(GlobalConfig.DbConfig dbConfig, String column) {
         String temp = dbConfig.getReservedWordsHandler().convert(dbConfig.getDbType(), column);
         if (dbConfig.isCapitalMode() && !isRelated()) {
             // 全局大写,非注解指定

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

@@ -21,7 +21,6 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.core.config.DbConfig;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.Configuration;
@@ -86,7 +85,7 @@ public class GlobalConfigUtils {
      */
     public static GlobalConfig defaults() {
         GlobalConfig config = new GlobalConfig();
-        config.setDbConfig(new DbConfig());
+        config.setDbConfig(new GlobalConfig.DbConfig());
         return config;
     }
 

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

@@ -16,7 +16,6 @@
 package com.baomidou.mybatisplus.core.toolkit;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.baomidou.mybatisplus.core.config.DbConfig;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
@@ -137,7 +136,7 @@ public class TableInfoHelper {
         boolean underCamel = builderAssistant.getConfiguration().isMapUnderscoreToCamelCase();
 
         /* 数据库全局配置 */
-        DbConfig dbConfig = globalConfig.getDbConfig();
+        GlobalConfig.DbConfig dbConfig = globalConfig.getDbConfig();
 
         // 表名
         TableName table = clazz.getAnnotation(TableName.class);
@@ -257,7 +256,7 @@ public class TableInfoHelper {
      * @param clazz      实体类
      * @return true 继续下一个属性判断,返回 continue;
      */
-    private static boolean initTableId(boolean underCamel, DbConfig dbConfig, TableInfo tableInfo,
+    private static boolean initTableId(boolean underCamel, GlobalConfig.DbConfig dbConfig, TableInfo tableInfo,
                                        Field field, Class<?> clazz) {
         TableId tableId = field.getAnnotation(TableId.class);
         if (tableId != null) {
@@ -311,7 +310,7 @@ public class TableInfoHelper {
      * @param clazz     实体类
      * @return true 继续下一个属性判断,返回 continue;
      */
-    private static boolean initFieldId(DbConfig dbConfig, TableInfo tableInfo,
+    private static boolean initFieldId(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo,
                                        Field field, Class<?> clazz) {
         String column = field.getName();
         if (dbConfig.isCapitalMode()) {
@@ -354,7 +353,7 @@ public class TableInfoHelper {
      * @param clazz      当前表对象类
      * @return true 继续下一个属性判断,返回 continue;
      */
-    private static boolean initTableField(boolean underCamel, DbConfig dbConfig, TableInfo tableInfo,
+    private static boolean initTableField(boolean underCamel, GlobalConfig.DbConfig dbConfig, TableInfo tableInfo,
                                           List<TableFieldInfo> fieldList, Field field, Class<?> clazz) {
         /* 获取注解属性,自定义字段 */
         TableField tableField = field.getAnnotation(TableField.class);