Browse Source

貌似解决了 idworker 初始化问题

miemieYaho 6 years ago
parent
commit
578dd3315a

+ 0 - 1
mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/spring/boot/starter/MybatisPlusAutoConfiguration.java

@@ -125,7 +125,6 @@ public class MybatisPlusAutoConfiguration {
         MybatisConfiguration configuration = this.properties.getConfiguration();
         if (configuration == null && !StringUtils.hasText(this.properties.getConfigLocation())) {
             configuration = new MybatisConfiguration();
-            configuration.init(globalConfig.getWorkerId(), globalConfig.getDatacenterId());
         }
         if (configuration != null && !CollectionUtils.isEmpty(this.configurationCustomizers)) {
             for (ConfigurationCustomizer customizer : this.configurationCustomizers) {

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

@@ -56,12 +56,11 @@ public class MybatisConfiguration extends Configuration {
     /**
      * 配置初始化
      */
-    public MybatisConfiguration init(Long workerId, Long datacenterId) {
+    public void init(Long workerId, Long datacenterId) {
         // 初始化 Sequence
         if (null != workerId && null != datacenterId) {
             IdWorker.initSequence(workerId, datacenterId);
         }
-        return this;
     }
 
     /**

+ 4 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/MybatisXMLConfigBuilder.java

@@ -436,4 +436,8 @@ public class MybatisXMLConfigBuilder extends BaseBuilder {
         return false;
     }
 
+    @Override
+    public MybatisConfiguration getConfiguration() {
+        return (MybatisConfiguration) super.getConfiguration();
+    }
 }

+ 7 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/spring/MybatisSqlSessionFactoryBean.java

@@ -82,7 +82,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
 
     private Resource configLocation;
 
-    private Configuration configuration;
+    private MybatisConfiguration configuration;
 
     private Resource[] mapperLocations;
 
@@ -282,7 +282,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
      * @param configuration MyBatis configuration
      * @since 1.3.0
      */
-    public void setConfiguration(Configuration configuration) {
+    public void setConfiguration(MybatisConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -397,7 +397,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
      */
     protected SqlSessionFactory buildSqlSessionFactory() throws Exception {
 
-        Configuration configuration;
+        MybatisConfiguration configuration;
 
         // TODO 加载自定义 MybatisXmlConfigBuilder
         MybatisXMLConfigBuilder xmlConfigBuilder = null;
@@ -416,12 +416,15 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
                 LOGGER.debug("Property 'configuration' or 'configLocation' not specified, using default MyBatis Configuration");
             }
             // TODO 使用自定义配置
-            configuration = new MybatisConfiguration().init(globalConfig.getWorkerId(), globalConfig.getDatacenterId());
+            configuration = new MybatisConfiguration();
             if (this.configurationProperties != null) {
                 configuration.setVariables(this.configurationProperties);
             }
         }
 
+        // TODO 初始化 idWorker
+        configuration.init(globalConfig.getWorkerId(), globalConfig.getDatacenterId());
+
         if (this.objectFactory != null) {
             configuration.setObjectFactory(this.objectFactory);
         }