1,SB的项目启动注解

@SpringBootApplication
public class SpringbootHelloWorldApplication {public static void main(String[] args) {SpringApplication.run(SpringbootHelloWorldApplication.class, args);}}

2,@SpringBootApplication注解由@Configuration@ComponentScan@EnableAutoConfiguration 三种注解组成

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class}
), @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
------------------------------------------------@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
@Indexed
public @interface SpringBootConfiguration {@AliasFor(annotation = Configuration.class)boolean proxyBeanMethods() default true;
}

3,其中EnablAutoConfiguration还引入了AutoConfigurationImportSelector类

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";Class<?>[] exclude() default {};String[] excludeName() default {};
}

4,AutoConfigurationImportSelector中扫描了 META-INF/spring.factories

protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");return configurations;
}

SpringBoot是如何完成自动配置的相关推荐

  1. SpringBoot核心原理:自动配置、事件驱动、Condition

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/l6108003/article/ details/106966386 前言 SpringBoot是Spring的包装,通过自动 ...

  2. java框架之SpringBoot(5)-SpringMVC的自动配置

    本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...

  3. springboot 获取bean_SpringBoot高级(自动配置 事件监听 监控)

    SpringBoot自动配置 condition-1 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载相应的Bean @Conditio ...

  4. SpringBoot自定义Starter(自动配置类)

    前言 SpringBoot其实从诞生以来围绕的核心就是快速构建项目,快速构建的前提是有人帮你做好轮子,开发者只要拿来即用就好了,而造好轮子的人就是SpringBoot的开发者,引入自动配置的形式帮助开 ...

  5. SpringBoot的@Conditional和自动配置类生效

    @Conditional原理    在之前的博客中提到了关于自动配置的原理,但是在自动配置的时候有很多的判断,只有当这些判断都成功之后在自动配置的时候才会成功.但是我们会发现一个问题,当我们使用@Be ...

  6. 【SpringBoot 2】(五)自动配置简析源码 开发中小技巧

    写在前面

  7. SpringBoot自动配置的原理及实现

    SpringBoot的核心就是自动配置,自动配置是基于条件判断配置Bean 自动配置的源码在spring-boot-autoconfigure-2.2.13.RELEASE SpringBoot运行原 ...

  8. springboot继承组件_SpringBoot如何扩展引入的组件,以及如何自动配置组件原理

    大家都知道,当我们创建SpringBoot项目之后,我们可以在pom文件下,引入我们想要启动的组件,当我们引入之后,SpringBoot会自动帮我们配置属性! 下面我们以SpringBoot引入Spr ...

  9. SpringBoot 自动配置

    Springboot 自动配置 关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 Springboot 是什么呐? 我管她是什么,好用就行了啊!!! spring ...

  10. 今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?

    SpringBoot是我们经常使用的框架,那么你能不能针对SpringBoot实现自动配置做一个详细的介绍.如果可以的话,能不能画一下实现自动配置的流程图.牵扯到哪些关键类,以及哪些关键点. 下面我们 ...

最新文章

  1. 零基础入门学习Pyhton(23)字典:当索引不好用时
  2. Skycc营销软件,使我人生越走越精彩
  3. 网速、宽带速率运营商说法与用户说法转换
  4. One more sprint? 再加一个迭代?-英文
  5. exp/imp三种模式——完全、用户、表
  6. 配置Hyper-V Server 资源计量
  7. 海南大学植物代谢组学技术开发与创新应用课题组博士后招聘
  8. c语言中的数据变量类型,大小
  9. MFC 设置应用程序开机启动并设置运行路径
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的bbs论坛管理系统
  11. kaggle实战_4解决高维数据分类/回归问题--房价预测
  12. 基于语音识别技术的声控鼠标光标程序设计
  13. 使用System.Drawing.Printing 画报表。
  14. 联想提取exe文件中的bios文件_3900不带X能干过99K吗?品牌机做视频渲染可以?联想刃7000P评测...
  15. 如何在程序中安装指定apk文件
  16. Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库
  17. 详解如何提取Unity素材,源码
  18. Springboot定时任务、Quartz表达式
  19. 怎么提供电子邮件副本_停止提供您的电话号码和电子邮件
  20. DDoS Deflate 的安装和使用

热门文章

  1. NET代码运行在服务器JS运行在客户端
  2. latex减少图片和图片解释文字之间的距离
  3. 习惯自律错误让我们真正成长
  4. 扇贝有道180927每日一句
  5. 扇贝有道180917每日一句
  6. unity Console窗口的输出
  7. Atitit 解决Unhandled event loop exception错误的办法
  8. Atitit.biz业务系统 面向框架  面向模式---------数据映射imp
  9. atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质
  10. paip.ajax没有起作用,提示 no transport