首页 > 其他分享 >@SpringbootApplication注解

@SpringbootApplication注解

时间:2024-04-07 20:57:27浏览次数:36  
标签:SpringbootApplication 配置 AutoConfigurationImportSelector 自动 Import 注解 class

@SpringBootConfiguration 是一个组合注解,由 @ComponentScan、@EnableAutoConfiguration 和 @SpringBootConfiguration 组成

  1. @SpringBootConfiguration 与普通 @Configuration 相比,唯一区别是前者要求整个 app 中只出现一次

  2. @ComponentScan

    • excludeFilters - 用来在组件扫描时进行排除,也会排除自动配置类

  3. @EnableAutoConfiguration 也是一个组合注解,由下面注解组成

    • @AutoConfigurationPackage – 用来记住扫描的起始包,包路径

    • @Import(AutoConfigurationImportSelector.class) 用来加载 META-INF/spring.factories 中的自动配置类

为什么不使用 @Import 直接引入自动配置类

有两个原因:

  1. 让主配置类和自动配置类变成了强耦合,主配置类不应该知道有哪些从属配置

  2. 直接用 @Import(自动配置类.class),引入的配置解析优先级较高,自动配置类的解析应该在主配置没提供时作为默认配置

因此,采用了 @Import(AutoConfigurationImportSelector.class)

  • AutoConfigurationImportSelector.class 去读取 META-INF/spring.factories 中的自动配置类,实现了弱耦合。

  • 另外 AutoConfigurationImportSelector.class 实现了 DeferredImportSelector 接口,让自动配置的解析晚于主配置的解析

标签:SpringbootApplication,配置,AutoConfigurationImportSelector,自动,Import,注解,class
From: https://www.cnblogs.com/szc1998/p/18119850

相关文章

  • @JsonProperty注解
    @JsonProperty注解序言@JsonProperty当一个Java对象转换成Json字符串后,如果不是正确的实际名称有可能会出现异常。比如数据库中的坐标名称是x_axis,而定义Java对象是是xAxis,那么这时就需要使用到@JsonProperty注解,并且配合ObjectMapper.writeValueAsString方法使用去序列化对......
  • Java(1)——注解
    常用注解Java注解从Java1.5开始引入,注解就是代码中的特殊标记,告诉类要如何运作。注解的典型应用是:通过反射技术获得类中的注解,来决定如何运行类。注解可以标记在类、属性、方法、变量等,并且一个地方可以同时标记多个注解。先从一个简单的注解开始说起。classSuperClass{......
  • SSM(Spring+SpringMVC+MyBatis)常用注解大全
    提示使用浏览器查找系统也快速查找,可避免漏看和疲劳Win:Ctrl+FMac:Command+F@Bean功能:用于在配置类中声明一个bean。用法:@ConfigurationpublicclassAppConfig{@BeanpublicMyServicemyService(){returnnewMyServiceImpl();}}@Com......
  • 注解和注释区别
    在Java中,"Annotation"通常被翻译为“注解”,而不是“注释”。虽然“注解”和“注释”这两个词在中文中很相似,但在编程语境中它们有着不同的含义和用途。注释(Comment):注释主要用于解释代码的功能、用途或特殊情况,帮助开发者理解代码。它们不会被编译器编译进程序,也不会影响程序的执......
  • easyExcel通用导出(非注解,多线程)
    1、基础类描述ExcelWriter(导出工具类)Query(通用查询)Consumer(函数参数)SpringBeanUtil(获取bean)2、代码ExcelWriterimportcn.hutool.core.collection.CollUtil;importcn.hutool.core.collection.ListUtil;importcn.hutool.core.util.PageUtil;importcn.hutool.core.u......
  • Spring 注解编程之 AnnotationMetadata
    Spring注解编程之AnnotationMetadata这篇文章我们主要深入AnnotationMetadata,了解其底层原理。Spring版本为5.1.8-RELEASEAnnotationMetadata结构使用IDEA生成AnnotationMetadata类图,如下:AnnotationMetadata存在两个实现类分别为StandardAnnotationMeta......
  • Lombok常用注解详解: val, @Cleanup, @RequiredArgsConstructor
    From: https://blog.csdn.net/hy6533/article/details/131030094从零开始SpringBoot35:Lombok图源:简书(jianshu.com)Lombok是一个java项目,旨在帮助开发者减少一些“模板代码”。其具体方式是在Java代码生成字节码(class文件)时,根据你添加的相关Lombok注解或类来“自动”添加......
  • Swagger工具集及Swagger工具集常见注解和用法
    目录一、什么是Swagger工具集二、swagger常用的注解和用法@Api@ApiOperation@ApiParam@ApiModel@ApiModelProperty@ApiIgnore三、常见问题1.@ApiModelProperty和@ApiOperation有什么区别?一、什么是Swagger工具集Swagger工具集是一系列围绕OpenAPISpecification......
  • Type注解对象类型
    Type注解对象在TS中对于对象数据的类型注解,除了使用interface之外还可以使用类型别名来进行注解,作用相似typePerson={name:stringage:number}letpeople:Person={name:'张三',age:16}console.log(people)Type继承type同样也可......
  • Java:注解
    Java中的注解(Annotations)是一种用于提供元数据的特殊接口,它们可以被用于给代码添加信息,而这些信息可以在编译时、类加载时或运行时被读取,并且可以影响程序的行为。注解不会直接影响程序的逻辑,但它们可以被编译器或运行时环境用来生成额外的代码、进行类型检查或者在运行时进......