java基础面试题(七)(SpringBoot)

SpringBoot

1.什么是SpringBoot?有什么优点?

        springboot是spring的子项目,是spring组件的一站式解决方案,简化了使用的难度,简省了配置

优点:

  1. 容易上手,提升开发效率
  2. 内置web容器
  3. 管理第三方工具包,避免了大量maven版本冲突
  4. 简化开发,没有代码生成,也没有xml配置
  5. 开箱即用,减少配置

2.SpringBoot核心注解是什么?由哪几个注解组成?

核心注解是:@SpringBootApplication

组成:

        @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能

        @EnableAutoConfiguration:打开自动配置功能

        @ComponentScan:Spring组件扫描

3.SpringBoot自动装配机制

自动装配就是自动去把第三方组件的Bean装载到IOC容器里面,不需要开发人员再去写Bean相关的配置;

在SpringBoot中只需要加上@SpringBootApplication注解就可以实现自动装配;

java基础面试题(七)(SpringBoot)_第1张图片

4.SpringBoot如何实现应用程序的安全性

使用依赖项,必须添加安全配置

5.SpringBoot中监听器是什么

actuator,监视器可帮助访问生产环境中正在运行的应用程序的当前状态

6.什么是 CSRF 攻击?

CSRF指的是跨站请求伪造

7.SpringBoot比Spring做了哪些改进?

  1. springboot可以独立建立spring应用程序
  2. 内嵌tomcat
  3. 无需繁重的xml配置
  4. 可以自动配置spring
  5. 整合了常用的依赖

8.运行SpringBoot有哪几种方式

  1. 打包用命令或者放到容器中运行
  2. 用maven插件运行
  3. 直接执行main方法

9.SpringBoot配置加载顺序

通过事件监听的方式读取配置文件

1.properties文件

2.ymal文件

3.系统环境变量

4.命令行参数

10.为什么SpringBoot的jar可以直接运行

java基础面试题(七)(SpringBoot)_第2张图片

11.SpringBoot的启动原理

java基础面试题(七)(SpringBoot)_第3张图片

12.SpringBoot Starter是什么?常用的Starter有哪些?

Starter可以理解为启动器,包含了一系列可以集成到应用里面的依赖包,可以一站式集成Spring其他的技术,而不需要到处寻找代码和依赖包。

常见的Starter:

        spring-boot-starter-web:嵌入servlet与jsp支持

        spring-boot-starter-data-jpa:数据库支持

        spring-boot-starter-data-redis:redis支持

        spring-boot-starter-data-solr:solr支持

13.如何在SpringBoot启动的时候运行一些特定的代码

        可以实现接口ApplicationRunner,重写run方法,再把实现接口的类加入ioc容器

14.SpringBoot如何实现异常处理

        通过实现一个ControlerAdvice类,来处理控制器类抛出的所有异常

15.SpringBoot的核心配置文件有哪些?区别是什么?

        核心配置文件:application和bootstrap配置文件

区别:

        1.bootstrap先于application加载,bootstrap里面的属性不能被覆盖

        2.application主要用于spring boot 项目的自动化配置

        3.bootstrap:使用配置中心时,这时需要在bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些固定的不能被覆盖的配置;一些加密/解密的场景。

16.Spring Boot、Spring MVC 和 Spring 有什么区别?

        1.范围:spring mvc < spring < springboot;

        2.Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个 MVC 框架,而Spring Boot 是基于Spring的一套快速开发整合包

        3.Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展

17.SpringBoot的run方法做了什么事情?

         做了一个类似于ioc的初始化操作

        1.记录Spring boot启动时间

        2.获取所有在构造器中,从spring.factories文件读取加载的监听器

        3.启动所有监听器

        4.用已有的数据准备上下文

        5.刷新Context

18.SpringBoot如何解决跨域

        利用CORS来解决跨域,通过实现WebMvcConfigurer接口,然后重写addCorsMappings方法来解决跨域。

19.SpringBoot如何兼容老的Spring项目

        可以兼容;可以使用@ImportResource注解来导入老Spring项目的配置文件

20.SpringBoot如何实现定时任务

        使用@Scheduled注解来实现

21.@SpringBootApplication注解有什么用?为什么一定要用它?

 当spring容器在启动时加上@SpringBootApplication注解,就相当于类上加了:

        1.@EnableAutoConfiguration:将自动配置类导入到Spring容器中,进行解析

        2.@SpringBootConfiguration:表示当前类是一个配置类

        3.@ComponentScan:Spring容器会进行扫描,扫描路径为当前解析类的包路径

所以,只要加上了它,SpringBoot就会进行扫描,就会导入自动配置类并解析

你可能感兴趣的:(java,spring,spring,boot)