zoukankan      html  css  js  c++  java
  • SpringBoot的学习【3.HelloWorld配置细节】

    /**
     *  @SpringBootApplication用来标注主程序类。
     */
    @SpringBootApplication
    public class First {
        public static void main(String[] args) {
            //Spring应用启动起来
            SpringApplication.run(First.class,args);
    
        }
    }

    1.引子

    以上为Springboot的主程序类,将main方法运行就能将springboot项目启动。在SpringApplication的run方法中,传入的类就表示主程序类。其中,此类必须标识@SpringBootApplication注解。
    如果运行没有此注解表示的类,会报错产生如下信息:
    org.springframework.context.ApplicationContextException: Unable to start embedded container
    Caused by: 
    org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

    2.@SpringBootApplication注解。

    查看@SpringBootApplication注解,会发现此注解为一个混合注解。

    1)@SpringBootConfiguration:意为SpringBoot配置类。此注解是组合注解,其中@ConfigurationSpring的配置类标识。

    配置类也是容器中的一个组件。

    2)@EnableAutoConfiguration:开启自动配置功能。作用为,将SpringBoot中的默认配置,例如配置SpringMvc等自动配置。
    @AutoConfigurationPackage:自动配置包。此注解内容如下:发现@Improt注解。此注解为Spring底层注解,是为了导入组件(组件的内容就是括号内标识的类)。

    AutoConfigurationPackages.Registrar.class类中导入的组件为下图的内容

    其中metadata为注解的源信息,具体这个信息的内容可以debug看到,如下图:

    在截图中可以看到metadata@SpringBootApplication这个注解带过来的信息。

    鼠标选中new PackageImport(metadata).getPackageName()右键Evulavte进行计算,可以得到结果为此主配置类所在的包。这也就能表示,其实此组件的作用就是将主配置类所在的包下所有的子包和类都扫描进去

    @Import(EnableAutoConfigurationImportSelector.class) 导入哪些组件的选择器。将所有需要导入的选择器组件以全类名的方式返回。会导入一些自动配置类。具体想知道哪些自动配置,需要找到EnableAutoConfigurationImportSelector.class的父类,debug进行分析。

    在此路径下可以看到所有导入的自动配置类。

  • 相关阅读:
    Python3简单的输入输出及内置函数查看
    Python绘制3d螺旋曲线图实例代码
    教女朋友学Python运行环境搭建
    初级模拟电路:3-4 共基放大电路(直流分析)
    初级模拟电路:3-3 共基组态
    初级模拟电路:3-2 BJT的工作原理
    初级模拟电路:3-1 BJT概述
    初级模拟电路:2-6 倍压电路
    初级模拟电路:2-5 钳位器
    初级模拟电路:2-4 限幅器
  • 原文地址:https://www.cnblogs.com/miaoww/p/9271948.html
Copyright © 2011-2022 走看看