package com.inspect.common.security.annotation;

import com.inspect.common.security.config.ApplicationConfig;
import com.inspect.common.security.config.WebMvcConfig;
import com.inspect.common.security.feign.FeignAutoConfiguration;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableAsync;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@EnableAspectJAutoProxy(
        exposeProxy = true
)
@MapperScan({"com.inspect.**.mapper"})
@EnableAsync
@Import({ApplicationConfig.class, FeignAutoConfiguration.class, WebMvcConfig.class})
public @interface EnableCustomConfig {
}
