فهرست منبع

新增 MybatisPlusPropertiesCustomizer 及配置使用

miemie 6 سال پیش
والد
کامیت
44aca414e8

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

@@ -97,6 +97,8 @@ public class MybatisPlusAutoConfiguration implements InitializingBean {
 
     private final List<ConfigurationCustomizer> configurationCustomizers;
 
+    private final List<MybatisPlusPropertiesCustomizer> mybatisPlusPropertiesCustomizers;
+
     private final ApplicationContext applicationContext;
 
 
@@ -105,17 +107,22 @@ public class MybatisPlusAutoConfiguration implements InitializingBean {
                                         ResourceLoader resourceLoader,
                                         ObjectProvider<DatabaseIdProvider> databaseIdProvider,
                                         ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider,
+                                        ObjectProvider<List<MybatisPlusPropertiesCustomizer>> mybatisPlusPropertiesCustomizerProvider,
                                         ApplicationContext applicationContext) {
         this.properties = properties;
         this.interceptors = interceptorsProvider.getIfAvailable();
         this.resourceLoader = resourceLoader;
         this.databaseIdProvider = databaseIdProvider.getIfAvailable();
         this.configurationCustomizers = configurationCustomizersProvider.getIfAvailable();
+        this.mybatisPlusPropertiesCustomizers = mybatisPlusPropertiesCustomizerProvider.getIfAvailable();
         this.applicationContext = applicationContext;
     }
 
     @Override
     public void afterPropertiesSet() {
+        if (!CollectionUtils.isEmpty(mybatisPlusPropertiesCustomizers)) {
+            mybatisPlusPropertiesCustomizers.forEach(i -> i.customize(properties));
+        }
         checkConfigFileExists();
     }
 

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

@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * https://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.autoconfigure;
+
+/**
+ * Callback interface that can be customized a {@link MybatisPlusProperties} object generated on auto-configuration.
+ *
+ * @author miemie
+ * @since 3.1.2
+ */
+@FunctionalInterface
+public interface MybatisPlusPropertiesCustomizer {
+
+    /**
+     * Customize the given a {@link MybatisPlusProperties} object.
+     *
+     * @param properties the MybatisPlusProperties object to customize
+     */
+    void customize(MybatisPlusProperties properties);
+}