Springboot的常见面试题

简介: springboot自动装配:自动把第三方的组件自动装载到ioc容器中,不需要开发人员再去写bean相关的一个配置。在springboot的启动类上,只需要在启动类上加上@SpringbootApplication注解就可以实现主动装配,本身是一个复合注解,真正实现自动装配的注解@EnableAutoConfiguration。自动装配主要依靠三个核心的关键技术。引入starter,启动依赖主键(主键包含一个@Configuration配置类(在这个配置类中,需要通过bean去声明需要装载到ioc容器

前言

主要总结springboot中常见的面试题
关于其他框架的面试题,可看我该专栏下的其他模块

1. springboot比spring好在哪

  • springboot简化Spring,使用properties和yml来替代xml文件,抛弃了冗余的xml文件
  • 嵌入了http服务器以及多种插件
  • 简化配置(spring-boot-starter-web 启动器自动依赖其他组件,简少了 maven 的配置)
  • 自动配置
  • 应用监控
  • 无需部署war文件

对比spring家族系列
Spring和Spring MVC要配置大量的参数
SpringBoot通过一个自动配置和启动的项就可解决

2. 配置文件有哪几种格式

yml和properties文件

举个列子:

  • .properties
user.name = 码农研究僧
  • .yml(.yml 格式不支持 @PropertySource 注解导入配置)
user:name : 码农研究僧

3. 核心注解有哪几个

  • @SpringBootConfiguration(组合@Configuration注解,实现配置文件的功能)

在上面这个注解中有以下这个注解

  • @EnableAutoConfiguration(自动装配)
  • @ComponentScan(Spring组件扫描)

4. 启动时候的自动装配

说到springboot,其实最重要的原理有一个是自动装配
而且在面试中也是经常面试到的一个高频问题

自动装配:自动把第三方的组件自动装载到ioc容器中,不需要开发人员再去写bean相关的一个配置。在springboot的启动类上,只需要在启动类上加上@SpringbootApplication注解就可以实现主动装配,本身是一个复合注解,真正实现自动装配的注解@EnableAutoConfiguration。自动装配主要依靠三个核心的关键技术。

  • 引入starter,启动依赖主键(主键包含一个@Configuration配置类(在这个配置类中,需要通过bean去声明需要装载到ioc容器里面的bean对象))
  • 配置类是放在第三方的jar包里,通过springboot的约定优于配置的这个理念,将配置类的全路径放在了classpath中(springboot就可知道其位置)。上面的知识其实是spring中的springFactoriesLoader来完成
  • 有了配置类的jar包后,再通过spring提供的ImportSelector接口来实现对这些配置类的动态加载,从而完成自动装配

5. 监听器是什么

actuator监控当前的一个状态,通过HTTPURL访问的REST端点来检查状态

6. 可以使用xml文件配置么

默认是支持java配置
如果非要使用xml文件,可以通过@ImportResource 注解

7. 解决跨域问题

关于什么是跨域
可以通过该链接进行了解:
什么是跨域?跨域解决方法

跨域问题可以通过CORS进行解决
实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题

本身一个http请求服务中,流程是过滤器,拦截器
可以将其跨域的相关代码放置在过滤器中

8. 如何维护接口服务

本身springboot是微服务架构
前后端分离的时候如何维护其接口更改

可以通过使用swagger生成接口文档网址,即使有更改,可以获取最新的接口

本身swagger是可视化的ui,通常用于生成RESTful Web服务的可视化表示的工具

9. 如何实现分页

像mybatis使用的是pagehelper的插件

而springboot可以使用Spring Data-JPA
调用这个类的方法 org.springframework.data.domain.Pageable传递给存储库

10. 如何实现session共享

微服务框架架构之间的session被分割开了

可以将其session保存在redis中,当有微服务对其读取的时候,可以操作redis的session就可实现session共享
本身SpringSession基于Spring 中的代理过滤器实现,操作还是比较方便的

相关文章
|
1月前
|
Java 应用服务中间件 数据库连接
面试官:SpringBoot如何优雅停机?
面试官:SpringBoot如何优雅停机?
129 0
|
2月前
|
消息中间件 Java Kafka
Spring Boot面试题
Spring Boot 是一套快速开发框架,随着微服务架构应用不断普及,Spring Boot 的研发技术的掌握已经成为研发人员必会技能。与此同时,Spring Boot 开源生态建设能力非常强大,提供了很多应用组件,让Spring Boot 有丰富的三方开源软件的使用。
69 0
Spring Boot面试题
|
1月前
|
缓存 安全 Java
Spring Boot 面试题及答案整理,最新面试题
Spring Boot 面试题及答案整理,最新面试题
111 0
|
4月前
|
Java Maven Spring
【Spring Boot自动装配原理详解与常见面试题】—— 每天一点小知识(下)
【Spring Boot自动装配原理详解与常见面试题】—— 每天一点小知识(下)
105 0
|
1月前
|
XML Java 数据格式
【springboot原理篇】Bean的加载方式,面试必看
【springboot原理篇】Bean的加载方式,面试必看
|
3月前
|
缓存 NoSQL Java
面试官:SpringBoot如何实现缓存预热?
面试官:SpringBoot如何实现缓存预热?
81 0
|
3月前
|
XML 开发框架 监控
面试题:springboot比spring有哪些优点?
面试题:springboot比spring有哪些优点?
84 0
|
3月前
|
Java 数据库连接 Spring
面试题:springboot的自定义配置有哪些
面试题:springboot的自定义配置有哪些
20 0
|
4月前
|
SQL 安全 前端开发
这部SpringBoot实战派早已刷爆国内外一线大厂!面试稳了!
近年来,Spring Boot 是整个Java社区中最有影响力的项目之一,常常被人看作是Java EE( Java Platform Enterprise Edition )开发的颠覆者,它将逐渐替代传统SSM ( Java EE互联网轻量级框架整合开发——Spring MvC+Spring+MyBatis)架构。
|
4月前
|
SQL 安全 前端开发
这部SpringBoot实战派早已刷爆国内外一线大厂!面试稳了!
前言 近年来,Spring Boot 是整个Java社区中最有影响力的项目之一,常常被人看作是Java EE( Java Platform Enterprise Edition )开发的颠覆者,它将逐渐替代传统SSM ( Java EE互联网轻量级框架整合开发——Spring MvC+Spring+MyBatis)架构。
24 1