学习总结——大道至简 

1、SpringBoot优点:(为什么要用SpringBoot?)

SpringBoot其实是一整合Spring技术栈的一站式框架,简化了Spring的开发。优点如下:

  • 简化了配置,不需要编写xml文件——starter场景启动器自动依赖组件
  • 自动配置了所有第三方Jar——注解就自动配置了所有事情
  • 内置Tomcat等Web容器
  • 独立运行——可打成jar包直接运行

2、SpringBoot的核心注解是哪个?主要由哪些注解组成?

核心注解:@SpringBootApplication,组成如下:

  • @SpringBootConfiguration:配置类,继承自@Configuration,给容器注册组件。
  • @EnableAutoConfiguration:自动配置,底层是Spring原始注解
//Spring底层注解
@Import(AutoConfigurationImportSelector.class)
/*
1. 利用getAutoConfigurationEntry(annotationMetadata)方法给容器中批量导入一些组件。
2. 调用List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);获取到所有需要导入到容器的中配置类。
3. 利用工厂加载Map<String, List<String>> loadSpringFactories(ClassLoader classLoader)得到所有组件。
4. loadSpringFactories方法中去获取指定路径下String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories";
5. 默认扫描当前系统里边所有META-INF/spring.factories位置的文件,spring-boot-autoconfigure-2.6.0-sources.jar包里面有spring.factories该文件。
6. spring.factories文件里面写死了SpringBoot一启动就要给容器中加载的所有配置类。
*/

SpringBoot的高考志愿填报系统 springboot考点_java

  • @ComponentScan:指定扫描哪些Spring注解。

 

3、运行SpringBoot有哪几种方式?

  • main方法所在的类运行Spring Boot APP启动即可。
  • 命令行运行,打成jar包,使用java -jar 包名,执行即可。
  • maven或gradle运行

4、SpringBoot的Starters?

场景启动器,包含很多依赖包,集成所有第三方应用,各种spring-boot-starter-开头。

5、SpringBoot的配置加载顺序?

  • properties文件
  • yml文件
  • 系统环境变量
  • 命令行参数

6、SpringBoot项目启动时如何执行特定代码?

可以创建一个类,去实现两个接口,重写接口的方法即可,可在项目启动时执行相应的定时任务之类的方法。方法如下:

  • 实现ApplicationRunner接口
  • 实现CommandLineRunner接口
@Component
@Order(value = 1)//多个类实现该接口,可指定执行顺序
public class StartApplicationExecuteCode implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("方法一:项目启动执行特定代码......");
    }
}

//------------------------------------------------------------------------


@Component
@Order(value = 1)//多个类实现该接口,可指定执行顺序
public class StartApplicationExecuteCode implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("方法二:项目启动执行特定代码......");
    }
}

7、SpringBoot需要独立的容器运行?

不需要独立的容器就可以运行,由于本身已经内置的有Tomcat、Jetty等Web服务器。