面试题之SpringBoot

  1. 什么是SpringBoot?

SpringBoot是Spring开源阻止下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,使开发者可以快速上手。

  1. 为什么要使用SpringBoot?

快速开发,快速整合,配置简单,内嵌服务容器

  1. SpringBoot有哪些有点?
  1. 容易上手,提成开发效率,简单开发。
  2. 开箱即用,简省繁琐配置
  3. 提供了一系列大型项目的非业务性功能。例如:内嵌服务器、运行数据监控、运行状况检查、和外部优化配置等
    总结:编码简单、配置简单、部署简单、监控变简单
  1. SpringBoot核心注解是哪几个?

启动类上面的@SpringBootApplication,它也是SpringBoot的核心注解,包含了以下3个注解

  1. @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能
  2. @EnableAutoConfiguration:打开自动配置的功能
  3. @ComponentScan:扫描组件
  1. SpringBoot Starter的工作原理

在SpringBoot启动时由@SpringBootApplication注解会自动去maven去读取每个starter中的spring.factories文件,该文件里面配置了所有需要被创建的bean,并且进行自动装配把bean注入Spring content中去

  1. SpringBoot2.x 与SpringBoot1.x有什么区别?
  1. 配置变更
  2. JDK版本升级
  3. 第三方类库升级
  4. 响应式Spring编程支持
  5. Http/2支持
  6. 配置属性绑定
  1. SprigBoot支持什么前端模板?

thymeleaf、freemarker、jsp

  1. 开启SpringBoot特性有哪几种方式?
  1. 集成Spring-boot-starter-parent项目
  2. 导入Spring-boot-dependencies项目依赖
  1. SpringBoot实现热部署有哪几种方式?
  1. Spring loaded
  2. Spring-boot-devtools
  1. SpringBoot事物怎么使用?
  1. 在SpringBoot启动类上面使用@EnableTransactionManagement 开启事物之后 在service方法上面使用@Transactional
  1. Aysnc 异步调用方法

在SpringBoot中使用异步调用是很简单,只需要在方法上使用@Async注解就可以实现方法的以部调用。需要开启@EnableAsync开启@Async才会生效。

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

可以实现接口ApplicationRunnher或者CommandLineRunner,然后在run方法执行特定操作,该类会在SpringBoot启动完成运行

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

SpringBoot可以通过@PropertySource,@Value,@Enviornment,@ConfigurationProperties注解来绑定变量。

  1. SpringBoot的自动配置原理是什么?
  1. 主要是SpringBoot的启动类上的核心注解@SpringBootApplication注解配置类,有了这个主配置类启动的时候就会为SpringBoot开启一个@EnableAutoConfiguration注解自动配置功能
    有了这个@EnableAutoConfiguration 的话就会
  2. 从配置文件META_INF/Spring.factories加载可能用到的自动配置类
  3. 去重,并将execulde和excludeName属性携带的类排除
  4. 过滤,将满足条件的自动配置类返回
  1. SpringBoot可以使用哪几种方式来加载配置?
  1. properties
  2. YAML文件
  3. 系统环境变量
  4. 命令行参数
    还有更多方式
  1. 什么是YAML?

YAML是一种可读的序列化语言,通常用于配置文件,与属性文件相比,YAML更加结构化,更少混淆。

  1. YAML配置的优势有哪些?
  1. 配置有序
  2. 简单明了
  3. 相比properties配置文件,YAML还有一个缺点,不支持@PropertySource注解导入自定义的YAML配置
  1. SpringBoot是否可以使用XML配置?

是可以的,但是SpringBoot 推荐采用Java配置而且而非XML配置。

  1. Springboot 核心配置文件是什么?bootstrap.properties 和application.properties的区别
  1. bootstrap由父ApplicationContext加载的,比application优先加载,配置的应用程序上下文的引导阶段生效。一般来说在SpringCloud配置的时候会使用到这个文件
  2. application由ApplicationContext加载,用于SpringBoot项目的自动化配置
  1. SpringBoot多数据源拆分思路?

先在properties 配置文件中配置两个数据源,创建分包mapper,使用@ConfigurationProperties读取propeties中的配置,使用@MapperScan注册到对应的mapper中去

  1. SpringBoot多数据源事物如何管理?
  1. 第一种方式是在service层的@TransactionManager中使用transactionManager指定datasourceConfig配置的事物
  2. 第二种是使用ta-atomikos实现分布式事物管理
  1. 保护SpringBoot应用的方法有哪些?
  1. 生产种使用Https
  2. 使用snyk检查依赖关系
  3. 升级到最新版本
  4. 启动CRSF 保护
  5. 使用安全策略方式XSS攻击
  1. 如何实现SpringBoot应用程序的安全性?

使用spring-boot-starter-security依赖项,并且添加安全配置。配置类扩展WebSecurityConfigurerAdapter 并且覆盖

  1. 比较Spring security和Shiro的优缺点?
  1. security是一个重量级框架,shiro是个轻量级框架
  2. security 配置繁琐,shiro简单
  3. security功能强大 shiro功能简单
  1. SpringBoot种如何解决跨域问题?

跨域可以在前端通过JSONP来解决,但是只能解决GET请求。SpringBoot可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。

  1. SpringBoot中的监视器是什么?

SpringBoot actuator是spring启动框架中的重要功能之一,SpringBoot监视器可帮助访问生产环境的应用当前状态。

  1. 如何监听SpringBoot微服务?

SpringBoot提供监视器端点,以及监控各个微服务的度量,这些端点对于获取是否正常运行很有帮助。我们将使用SpringBoot Actuator之上,它提供了一个webui 使我们可监视多个应用程序的度量

  1. SpringBoot项目如何性能优化?

项目比较大就采用@Compoment指定扫描包范围
在项目启动时设置JVM初始化内存和最大内存相同

  1. SpringBoot 微服务中如何实现session共享?

使用Spring session+redis实现session共享

  1. SpringBoot中的starter到底是什么?

这份starter是基于spring来实现的,它提供一个自动化配置装配类。在这个配置中通过条件来决定一个配置是否生效。然后提供了一系列的默认配置,也可以开发者自定义配置

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354