版本信息
Spring Boot 2.5.4
启动类
@SpringBootApplication@MapperScan(basePackages = {"com.ybqdren.mapper"} )@ComponentScan(basePackages = {"com.ybqdren","org.n3r.idworker"})public class Application {public static void main(String[] args){SpringApplication.run(Application.class,args);}}
注解解析
@SpringBootApplication
// 元注解,用来描述注解的适用范围,其中TYPE用来描述类 接口(包括包注解类型)或enum声明@Target(ElementType.TYPE)// 元注解,描述注解的生命周期,保留到class文件中(三个声明周期)@Retention(RetentionPolicy.RUNTIME)// 元注解,描述标明这个注解应该被javadoc记录@Documented// 元注解,子类可以继承该注解@Inherited// 继承了Configuration,表示被注解的类是注解类@SpringBootConfiguration// 让被注解的类拥有自动装配配置文件的功能,其中使用了@Import注解,导入了自动导入AutoConfigurationImportSelector类@EnableAutoConfiguration// 扫描路径设置@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })public @interface SpringBootApplication {// ......}
@ComponentScan
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Repeatable(ComponentScans.class) // JDK8加入的一个新特性 表示一个注解可以被重复使用public @interface ComponentScan {/*** Specifies which types are not eligible for component scanning.* @see #resourcePattern*/Filter[] excludeFilters() default {};// ...}
总结

参考资料
Java元注解作用及使用
http://c.biancheng.net/view/7009.html
注解@Repeatable详解
https://cloud.tencent.com/developer/article/1579167
SPRINGBOOT启动流程及其原理
https://www.cnblogs.com/theRhyme/p/11057233.html
