SpringBoot常问基础面试题 2021版

 

微服务之SpringBoot框架

前言

SpringBoot的简单介绍

SpringBoot,SSM框架的区别

SpringBoot的问题整合

SpringBoot有哪些优缺点

SpringBoot核心配置文件是什么?

SpringBoot 配置文件有哪几种类型?它们有什么区别?

SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?

开启 SpringBoot 特性有哪几种方式?

运行 SpringBoot 有哪几种方式?

SpringBoot 自动配置原理是什么?

你如何了解 SpringBoot 中的 Starters?

如何在 SpringBoot启动的时候运行少量特定的代码?

SpringBoot 有哪几种读取配置的方式?

SpringBoot 支持哪些日志框架?推荐和默认的日志框架是哪个?

SpringBoot 有哪些方式可以实现热部署?

如何在自定义端口上运行 SpringBoot 应用程序?

你如何了解 SpringBoot 配置加载顺序?

SpringBoot 可以兼容老 Spring 项目吗,如何做?

SpringBoott常用的插件有哪些?


前言

实际开发过程中个人有用到过springboot,觉得springboot提高了配置的便利性,简单比喻,springboot这个框架就像读书时候做的笔记,笔记上全是常用的知识点

 

SpringBoot的简单介绍

  Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。

  同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑
    
  注1:敏捷式开发
  注2:spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,
        就像maven整合了所有的jar包,spring boot整合了所有的框架
  注3:开发环境必须>=jdk1.8
  注3:开发原则:基于约定  [简化XML配置,全部采用注解形式,内置HTTP服务器(jetty、Tomcat),最终以Java应用程序进行执行]

 

SpringBoot,SSM框架的区别

1.Springboot 将原有的 xml 配置,简化为 java 注解

2.使用 IDE 可以很方便的搭建一个 springboot 项目,选择对应的 maven 依赖,简化Spring应用的初始搭建以及开发过程

3.springboot 有内置的 tomcat 服务器,可以 jar 形式启动一个服务,可以快速部署发布 web 服务

4.springboot 使用 starter 依赖自动完成 bean 配置,解决 bean 之间的冲突,并引入相关的 jar 包(这一点最重要)

简单来说:

ssm是你自己来做整合(虽然很多人发布了自己整合好的骨架),spring boot是将依赖和编码的完整整合,更像是插件式的整合。

 

SpringBoot的问题整合

 

SpringBoot有哪些优缺点

优点:

1、快速构建项目。

2、对主流开发框架的无配置集成。

3、项目可独立运行,无须外部依赖 Servlet 容器。

4、提供运行时的应用监控。

5、极大的提高了开发、部署效率。

6、与云计算的天然集成。

缺点:

1、如果你不认同 spring 框架,也许这就是缺点。

 

SpringBoot核心配置文件是什么?

bootstrap (. yml 或者 . properties):boostrap 由父 ApplicationContext 加载的,比 applicaton 优先加载,且 boostrap 里面的属性不能被覆盖;

application (. yml 或者 . properties):用于 spring boot 项目的自动化配置。

使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中增加连接到配置中心的配置属性来加载外部配置中心的配置信息;

少量固定的不能被覆盖的属性;

少量加密/解密的场景;

SpringBoot 配置文件有哪几种类型?它们有什么区别?

配置文件有 . properties 格式(平铺)和 . yml 格式(树状),它们主要的区别是书法风格不同

. properties 配置如下:

spring. RabbitMQ. port=5672



. yml 配置如下:

spring:

     RabbitMQ:

         port: 5672


注意:

. yml 格式不支持 @PropertySource 注解导入。

SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication它也是 Spring Boot 的核心注解

主要组合包含了以下 3 个注解:

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

2)@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,

如关闭数据源自动配置功能:

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })

@ComponentScan:Spring 组件扫描。

@EnableTransactionManagement // 启动注解事务管理

@CrossOrigin:解决细粒度的配置跨域

附:

//实现跨域注解

//origin=""代表所有域名都可访问

//maxAge飞行前响应的缓存持续时间的最大年龄,简单来说就是Cookie的有效期 单位为秒

//若maxAge是负数,则代表为临时Cookie,不会被持久化,Cookie信息保存在浏览器内存中,浏览器关闭Cookie就消失

 

开启 SpringBoot 特性有哪几种方式?

1)继承spring-boot-starter-parent项目

2)导入spring-boot-dependencies项目依赖

 

运行 SpringBoot 有哪几种方式?

1)打包用命令或者放到容器中运行

2)用 Maven/Gradle 插件运行

3)直接执行 main 方法运行

 

SpringBoot 自动配置原理是什么?

注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下能否有这个类去自动配置。

 

你如何了解 SpringBoot 中的 Starters?

Starters可以了解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其余技术,而不需要四处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只需加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。

Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。

 

如何在 SpringBoot启动的时候运行少量特定的代码?

可以实现接口 ApplicationRunner 或者者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法,

 

SpringBoot 有哪几种读取配置的方式?

Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量,

 

SpringBoot 支持哪些日志框架?推荐和默认的日志框架是哪个?

Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,假如你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架

 

SpringBoot 有哪些方式可以实现热部署?

使用 devtools 启动热部署,添加 devtools 库,在配置文件中把 spring. devtools. restart. enabled 设置为 true;

使用 Intellij Idea 编辑器,勾上自动编译或手动重新编译。

 

如何在自定义端口上运行 SpringBoot 应用程序?

为了在自定义端口上运行 Spring Boot 应用程序,您可以在 application.properties 中指定端口。例如:server.port = 8090

 

你如何了解 SpringBoot 配置加载顺序?

在 Spring Boot 里面,可以使用以下几种方式来加载配置。

1)properties文件;

2)YAML文件;

3)系统环境变量;

4)命令行参数;

等等……

 

SpringBoot 可以兼容老 Spring 项目吗,如何做?

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

 

SpringBoott常用的插件有哪些?

pring-boot-maven-plugin 提供了一些像 jar 一样打包或者运行应用程序的命令。

spring-boot:run 运行你的 SpringBooty 应用程序。

spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可执行

spring-boot:start 和 spring-boot:stop 管理 Spring Boot 应用程序的生命周期(也可以说是为了集成测试)。

spring-boot:build-info:生成执行器可以使用的构造信息。


编写不易,如果有帮助到的话,可以关注,点赞和收藏哦~

 

 

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值