package com.elab.spring.anno;

import com.elab.log.asepct.LogResponseBodyAdvice;
import com.elab.spring.config.*;
import com.elab.spring.exception.CommonException;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

/**
 * @Module 注解
 * @Description 开启Spring内部主要功能, 按需加载
 * @Author liukaixiong
 * @Date 2020/12/4 10:42
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
//, SpringCommonConfig.class 有问题
@Import({ELabSpringClientsRegistrar.class})
public @interface EnableElabSpring {

    /**
     * 是否开启RMQ配置
     *
     * @return
     */
    boolean enableRocketMQConfig() default false;

    /**
     * 是否注册线程池配置
     *
     * @return
     */
    boolean enableThreadConfig() default true;

    /**
     * 是否开启CatId的返回配置
     *
     * @return
     */
    boolean enableCatIdConfig() default true;

    /**
     * 是否开启公共的异常配置
     *
     * @return
     */
    boolean enableCommonExceptionConfig() default true;

    /**
     * 是否开启swagger配置
     *
     * @return
     */
    boolean enableSwaggerConfig() default false;

    /**
     * 是否开启mvc的默认配置
     *
     * @return
     */
    boolean enableMVCConfig() default true;

    /**
     * 默认开启拦截器
     *
     * @return
     */
    boolean enableAopConfig() default true;

}
