zoukankan      html  css  js  c++  java
  • 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:组件扫描

  • 相关阅读:
    asp.net 遍历xml 及 Repeater 绑定xml
    通过NetworkIsolationEnumAppContainers查看安装的UWP应用
    修复 Outlook 数据文件(.pst 和 .ost)
    c# 学习笔记 抓包解析器开发
    c++ 结构体位域操作 进制转换
    《C++ Footprint and Performance Optimization》读书笔记
    SQL SERVER 2000 函数一点小注意
    一个B/S结构MIS的登录日志的问题。
    jmeter连接mysql提示Cannot create PoolableConnectionFactory(查看jmeter日志,提示SSL)如何解决
    List、Map、Set之间的联系与区别:
  • 原文地址:https://www.cnblogs.com/renoside/p/13606718.html
Copyright © 2011-2022 走看看