001/*
002 *  Copyright (c) 2022-2025, Mybatis-Flex (fuhai999@gmail.com).
003 *  <p>
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *  <p>
008 *  http://www.apache.org/licenses/LICENSE-2.0
009 *  <p>
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package com.mybatisflex.spring.boot;
017
018import com.mybatisflex.core.FlexGlobalConfig;
019
020/**
021 * <p>MyBatis-Flex 配置。
022 *
023 * <p>一般可以用于去初始化:
024 *
025 * <ul>
026 *      <li>FlexGlobalConfig 的全局配置
027 *      <li>自定义主键生成器
028 *      <li>多租户配置
029 *      <li>动态表名配置
030 *      <li>逻辑删除处理器配置
031 *      <li>自定义脱敏规则
032 *      <li>SQL 审计配置
033 *      <li>SQL 打印配置
034 *      <li>数据源解密器配置
035 *      <li>自定义数据方言配置
036 *      <li>...
037 * </ul>
038 */
039public interface MyBatisFlexCustomizer {
040
041    /**
042     * 自定义 MyBatis-Flex 配置。
043     *
044     * @param globalConfig 全局配置
045     */
046    void customize(FlexGlobalConfig globalConfig);
047
048}