All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.starblues.extension.mybatis.SpringBootMybatisExtension Maven / Gradle / Ivy

package com.gitee.starblues.extension.mybatis;

import com.gitee.starblues.extension.AbstractExtension;
import com.gitee.starblues.extension.mybatis.group.MybatisConfigGroup;
import com.gitee.starblues.extension.mybatis.group.PluginEntityAliasesGroup;
import com.gitee.starblues.extension.mybatis.group.PluginMapperGroup;
import com.gitee.starblues.extension.mybatis.mybatisplus.MybatisPlusProcessor;
import com.gitee.starblues.extension.mybatis.tkmyabtis.TkMybatisProcessor;
import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
import com.gitee.starblues.factory.process.pipe.classs.PluginClassGroupExtend;
import org.springframework.context.ApplicationContext;

import java.util.ArrayList;
import java.util.List;

/**
 * mybatis 扩展
 * @author starBlues
 * @version 2.4.0
 */
public class SpringBootMybatisExtension extends AbstractExtension {

    private static final String KEY = "SpringBootMybatisPlusExtension";

    private final Type type;

    /**
     * 初始化扩展
     * @param type 根据当前环境所集成的框架来选择Type类型
     */
    public SpringBootMybatisExtension(Type type) {
        if(type == null){
            this.type = Type.MYBATIS;
        } else {
            this.type = type;
        }
    }

    @Override
    public String key() {
        return KEY;
    }

    @Override
    public void initialize(ApplicationContext mainApplicationContext) throws Exception {
    }

    @Override
    public List getPluginClassGroup(ApplicationContext mainApplicationContext) {
        final List pluginClassGroups = new ArrayList<>();
        pluginClassGroups.add(new MybatisConfigGroup());
        pluginClassGroups.add(new PluginEntityAliasesGroup());
        pluginClassGroups.add(new PluginMapperGroup());
        return pluginClassGroups;
    }

    @Override
    public List getPluginBeanRegistrar(ApplicationContext mainApplicationContext) {
        final List pluginBeanRegistrarExtends = new ArrayList<>(3);
        if(type == Type.MYBATIS_PLUS){
            pluginBeanRegistrarExtends.add(new MybatisPlusProcessor());
        } else if(type == Type.TK_MYBATIS){
            pluginBeanRegistrarExtends.add(new TkMybatisProcessor());
        } else {
            pluginBeanRegistrarExtends.add(new MybatisProcessor());
        }
        return pluginBeanRegistrarExtends;
    }

    public enum Type{
        MYBATIS,
        MYBATIS_PLUS,
        TK_MYBATIS
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy