2026年@enableswagger2注解(@enableswagger2doc)

@enableswagger2注解(@enableswagger2doc)在 springboot 中我们构建应用不用在像 spring 中那么繁琐 必须声明 bean 然后才能使用 在 springboot 只要引入了相关的 jar 包 则对应的功能会自动加载扩展 要想理解 springboot 的自动装配原理 我们首先要知道在 spring 中中比较重要的几个注解 Import Configuratio 比如大家常见的 则是由这几个注解组成 这里我们必须先说下 spring 在后面提供的基于注解的启动方式 我们可以直接基于注解 实现 可以看到



在springboot中我们构建应用不用在像spring中那么繁琐,必须声明bean,然后才能使用,在springboot只要引入了相关的jar包,则对应的功能会自动加载扩展。要想理解springboot的自动装配原理,我们首先要知道在spring中中比较重要的几个注解:

  • @Import
  • @Configuration

比如大家常见的

则是由这几个注解组成。

这里我们必须先说下spring在后面提供的基于注解的启动方式,我们可以直接基于注解,实现 :

可以看到,这里我们就实现了自动装在的功能了,还可以通过接口:

spring实现基于注解的自动装载,实现就在

其中,在构造初始化的时候,有如下逻辑:

AnnotationConfigUtils.registerAnnotationConfigProcessors(this.registry);

对应的代码逻辑如下:

可以看到,这步主要是注册了下面几个bean:

  • ConfigurationClassPostProcessor
  • AutowiredAnnotationBeanPostProcessor
  • CommonAnnotationBeanPostProcessor
  • EventListenerMethodProcessor
  • DefaultEventListenerFactory
    其中 就是用来处理 相关逻辑,其集成结构如下:

    其实现了,spring容器在bean的定义注册后会调用,在实现如下:







可以看到,这里会对当前所有注册的BeanDefinition进行判断,如果beanDefinition满足条件

  1. 有Configuration注解,则是FullConfigurationCandidate
  2. 有Component、ComponentScan、Import、ImportResource注解,则是LiteConfigurationCandidate

同时根据上述属性,设置Bedefinition对应属性:

当获取到满足条件BeanDefinition后,通过来进行实际的解析:

通过上述步骤,将相关注解需要处理的类和方法提取出来,然后通过注册到IOC容器中:

这样,便将注解相关的类都注册到了IOC容器中,那么spring是怎么获取需要扫描哪些bean呢 ?还记得开篇说的的吗,奥秘就在这个类构造时:

就是通过读取需要扫描的类,通过扫描指定的包名,这里就是Spring中实现基于注解方式的@Configuration方式

在springboot中一般springboot应用可以如下:

我们可以看下:

可以看到这里就是springboot自动装配的核心。

我们看看逻辑:

可以看到,主要逻辑是读取中key为的配置列表,然后按照条件对列表进行一定过滤,返回一个集合,spring会加载这个集合。

可以看到,默认情况下,只要我们开启了注解(直接或间接使用),springboot默认会为我们加载这么多的配置类,那么是不是这么多类都加载到IOC容器呢 ?这里我们就需要说下springboot中提供的、、、等条件注解。还记得我们在开头说的在的时候,会调用

可以看到,这里会获取注解上的属性,这里value属性是一个实现了接口的列表,然后实例化这些实现了接口的。可以看到,这里如果bean满足如下条件,则不会注册:

可有看到和的实现都是通过实现。

springboot Configuration用法_ide

可以看到,这里和实现本质上是一样的,就是获取注解上对应的bean是否存在,只不过两者在判断结果的时候,判断逻辑相反,而已。

EnableAutoConfigurationMETA-INF/spring.factories

今天的文章 2026年@enableswagger2注解(@enableswagger2doc)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2026-03-16 19:21
下一篇 2025-03-28 20:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/54697.html