• Spring Boot解析,以HelloWorld为例


    主程序类(主入口类)—— @SpringBootApplication注解

    @SpringBootApplication:Spring Boot应用标注在某个类上的说明这个类是Spring Boot的著配置类,Spring Boot会运行这个类的main方法来执行Spring Boot程序

    @SpringBootConfiguration
    @EnableAutoConfiguration
    @ComponentScan(excludeFilters = {
                        @Filter(type = FilterType.CUSTOM, classes ={TypeExcludeFilter.class}), 
                        @Filter(type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})
                    })
    public @interface SpringBootApplication {
    

    @SpringBootApplication注解主要由以下注解组成:

    • @SpringBootConfiguration:实际就是一个@Configuration的别名配置注解,表示这是一个Spring Boot配置类

      @Configuration
      public @interface SpringBootConfiguration {
      

      @Configuration底层就是一个@Component注解的@interface,其实就是一个组件

      @Component
      public @interface Configuration {
      
    • @EnableAutoConfiguration:启动Spring Boot的自动配置

      @AutoConfigurationPackage
      @Import({AutoConfigurationImportSelector.class})
      public @interface EnableAutoConfiguration {
      
      • @AutoConfigurationPackage:自动配置包,实际就是一个@Import注解的@interface,@Import表示为容器注入一些组件

        @Import({Registrar.class})
        public @interface AutoConfigurationPackage {
        

        Registrar类会将主配置类(即@SpringBootApplication标注的类)所在的包及其子包里的所有组件全部扫描到Spring容器中

      • @Import(EnableAutoConfigurationImportSelector.class):为容器注入一些组件

        EnableAutoConfigurationImportSelector是一个告诉Spring应该导入哪些组件的选择器,将需要的组件以全类名的方式返回,然后这些组件就会被添加到容器中。其实最终就是添加一系列的自动配置类,形如xxxxAutoConfiguration,这些自动配置类会自动导入所用场景的组件和配置

        Spring Boot在启动时会从类路径下的MATE-INF/spring.factories中获取EnableAutoConfiguration中指定的值,将这些值导入到容器中,自动配置类就生效了,Spring Boot就会自动帮我们完成配置

    • @ComponentScan:组件扫描

  • 相关阅读:
    公司系统缓慢-分析数据库CPU过高原因-连接数
    克隆虚拟机的相关设置
    centos7基本设置和优化
    遇到的问题和解决集中
    chrome优化调教
    shell三剑客之小弟grep
    迭代器和生成器
    函数进阶
    函数介绍&参数的使用
    文件处理中光标的移动以及文件的修改
  • 原文地址:https://www.cnblogs.com/renoside/p/13606718.html
Copyright © 2020-2023  润新知