SpringBoot自动配置的原理
  diRvFkCA5Zb8 2023年11月01日 49 0

以WebMvcAutoConfiguration自动配置的原理为例,SpringBoot内部对大量的第三方库或Spring内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应库所需的依赖,如果有那么默认配置就会生效。如果引入springboot-starter-web那么对应的web配置就会自动配置。那么是如何自动配置的呢?

我们找到对应的源码来看下:

先找到对应的自动配置的jar包

然后在org下-->找到web-->找到servlet-->找到装载配置类和对应的属性配置

我们点击WebMvcAutoConfiguration配置类看进去

通过源码可以看到:@Configuration:声明这个类是一个配置类。

条件注解(Conditional Annotation):Spring Boot提供了一系列的条件注解,如@ConditionalOnClass@ConditionalOnMissingBean@ConditionalOnProperty等。(就是在某个条件下,满足项目的是什么类型)

(查源码)自动配置类(Auto-Configuration Class):自动配置类使用条件注解来标记自己的生效条件,并在满足条件时进行自动配置。每个自动配置类通常都对应一个特定的功能模块或库,并声明需要自动配置的Bean。对于一个web程序来说,类中还定义了视图解析器、处理器适配器(HandlerAdapter)

对于类中的这些属性,@EnableAutoConfiguration注解引入了两个属性:WebMvcProperties和ResourceProperties,点击源码查看属性类,里面有内部资源视图解析器的prefix和suffix属性等静态文件资源。

SpringBoot为我们提供了默认配置,而默认配置生效的条件,我们也可以自己配置,那么就会覆盖默认配置。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   110   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
diRvFkCA5Zb8