1、什么是 Spring Boot?

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式处理方案,主要是简化了使用

Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

2、为什么要用 Spring Boot?

Spring Boot 优点非常多,如: 独立运行

简化配置

自动配置

无代码生成和XML配置应用监控

上手容易.....

Spring Boot 集这么多优点于一身,还有理由不使用它呢?

3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。application 配置文件这个容易了解,主要用于 Spring Boot 项目的自动化配置。bootstrap 配置文件有以下几个应用场景。

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

少量固定的不能被覆盖的属性; 少量加密/解密的场景;

4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?

.properties 和 .yml,它们的区别主要是书写格式不同。1).properties

2).yml

另外,.yml 格式不支持@PropertySource注解导入配置。

5、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下

3 个注解:

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

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源 自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。

6、开启 Spring Boot 特性有哪几种方式?

1) 继 承 spring-boot-starter-parent 项 目 2)导入spring-boot-dependencies项目依赖

7、Spring Boot 需要独立的容器运行吗?

可以不需要,内置了 Tomcat/ Jetty 等容器。

8、运行 Spring Boot 有哪几种方式?

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

9.springboot常用的starter有哪些?

spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持

spring-boot-starter-data-jpa 数据库支持spring-boot-starter-data-redis redis数据库支持spring-boot-starter-data-solr solr支持

mybatis-spring-boot-starter 第三方的mybatis集成starter

10、Spring Boot 自动配置原理是什么?

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

11、Spring Boot 的目录结构是怎么的?

这个目录结构是主流及推荐的做法,而在主入口类上加上 @SpringBootApplication 注解来开启 Spring Boot 的各项能力,如自动配置、组件扫描等。

12、你如何了解 Spring Boot 中的 Starters?

Starters可以了解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring

及其余技术,而不需要四处找示例代码和依赖包。

如你想使用 Spring JPA 访问数据库,只需加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。

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

13、如何在 Spring Boot 启动的时候运行少量特定的代码?

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

14、Spring Boot 有哪几种读取配置的方式?

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

15、Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

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

Spring Boot 将使用 Logback 作为默认日志框架,

16、SpringBoot 实现热部署有哪几种方式?

主要有两种方式:

Spring Loaded Spring-boot-devtools

Spring-boot-devtools?

17、你如何了解 Spring Boot 配置加载顺序?

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

1)properties文件; 2)YAML文件;系统环境变量;

命令行参数; 等等……

18、Spring Boot 如何定义多套不同环境配置?

提供多套配置文件,如: 运行时指定具体的配置文件

19、Spring Boot 可以兼容老 Spring 项目吗,如何做?

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

20、保护 Spring Boot 应用有哪些方法?

在生产中使用HTTPS

使用Snyk检查你的依赖关系更新到最新版本

启用CSRF保护

使用内容安全策略防止XSS攻击...

21、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?

配置变更

JDK 版本更新第三方类库更新

响应式 Spring 编程支持

HTTP/2 支持配置属性绑定

更多改进与增强…

什么是Spring Profiles?

Spring Profiles允许用户根据配置文件(dev,test,prod等)来注册bean。

因此,当应用程序在开发中运行时,只有某些bean可以加载,而在PRODUCTION中,某些其他bean可 以加载。

假设我们的要求是Swagger文档仅适用于QA环境,并且禁用所有其他文档。这可以使用配置文件来完成。Spring Boot使得使用配置文件非常简单。

什么是Spring Batch?

Spring Boot Batch提供可重用的函数,这些函数在处理大量记录时非常重要,包括日志/跟踪,事务管理,作业处理统计信息,作业重新启动,跳过和资源管理。

它还提供了更先进的技术服务和功能,通过优化和分区技术,可以实现极高批量和高性能批处理作业。 简单以及复杂的大批量批处理作业可以高度可扩展的方式利用框架处理重要大量的信息。

什么是FreeMarker模板?

FreeMarker是一个基于Java的模板引擎,最初专注于使用MVC软件架构进行动态网页生成。使用Freemarker的主要优点是表示层和业务层的完全分离。

程序员可以处理应用程序代码,而设计人员可以处理html页面设计。最后使用freemarker可以将这些结合起来,给出最终的输出页面。

什么是JavaConfig?

Spring JavaConfig是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法。因此它有助于避免使用XML配置。

使用JavaConfig的优点在于:

面向对象的配置。由于配置被定义为JavaConfig中的类,因此用户可以充分利用Java中的面向对象功 能。一个配置类可以继承另一个,重写它的@Bean方法等。

减少或消除XML配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在

XML和Java之间来回切换。

JavaConfig为开发人员提供了一种纯Java方法来配置与XML配置概念相似的Spring容器。

从技术角度来讲,只使用JavaConfig配置类来配置容器是可行的,但实际上很多人认为将JavaConfig与

XML混合匹配是理想的。

类型安全和重构友好。JavaConfig提供了一种类型安全的方法来配置Spring容器。由于Java 5.0对泛型的支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串的查找

启动类注解:

@SpringBootConfiguration:Spring Boot的配置类; 标注在某个类上,表示这是一个Spring Boot的配置类; @Configuration:配置类上来标注这个注解;

配置类配置文件;配置类也是容器中的一个组件;@Component@EnableAutoConfiguration:开启自

动配置功能;

以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot

开启自动配置功能;这样自动配置才能生效;

Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就失效,帮我们进行自动配置工作

配置文件的加载顺序?

由jar包外向jar包内进行寻找; 优先加载带profilejar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件

jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件再来加载不带profile

jar包外部的application.properties或application.yml(不带spring.profile)配置文件?

jar包内部的application.properties或application.yml(不带spring.profile)配置文件

28.自动配置原理?

1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2)、@EnableAutoConfiguration 作用:将 类路径下 META-INF/spring.factories 里面配置的所有

EnableAutoConfiguration的值加入到了容器中;每一个这样的 xxxAutoConfiguration类都是容器中的一个组件,都加入到容器中;用他们来做自动配置;

3)、每一个自动配置类进行自动配置功能;根据当前不同的条件判断,决定这个配置类是否生效?

一但这个配置类生效;这个配置类就会给容器中添加各种组件;这些组件的属性是从对应的properties类中获取 的,这些类里面的每一个属性又是和配置文件绑定的;、所有在配置文件中能配置的属性都是在xxxxProperties类中封装者‘;配置文件能配置什么就可以参照 某个功 能对应的这个属性类怎么用好自动配置,精髓:、SpringBoot启动会加载大量的自动配置类

、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;

、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再 来配置了)

、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这 些属性的值;

希望读者能够给小编留言。

freemarker面试_SpringBoot基础面试题相关推荐

  1. 【撷英采华】阿里面试Linux基础笔试题-含答案

    文章目录 一. 阿里面试流程 二. 阿里原题限时答题 三. 参考答案: 四. 总结 一. 阿里面试流程 阿里的面试一般分为笔试和电话面试. 很多大的外包公司都在帮阿里招聘,所以他们的候选人很多. 所以 ...

  2. 备战2022年春季面试Java基础面试题库《收藏》

    前言 本文主要涉及到的面试问题点比较多各种各样的,本文主要涉及到的是Java的基础.集合类.并发编程.框架.面试题我就把我常遇到的和一些出现频率比较多的问题整理出来了. 如果想要更多的学习资料的小伙伴 ...

  3. c# wpf 面试_WPF 基础面试题及答案(一)

    一 · WPF由哪两部分组成? wpf 由两个主要部分 组成:引擎和编程框架. 1 引擎.wpf引擎是基于窗体的应用程序 图形 视频 音频和文档提供了一个单一的运行时库.重要的是WPF基于矢量的呈现引 ...

  4. “面试不败计划”: java语言基础面试题(三)

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 好好学java java知识分享/学习资源免费分享 关注 精彩内容 java实 ...

  5. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(一)

    作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn.net/zhangerqing(转载请说明出处) ...

  6. Java 基础面试题,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  8. 博学谷java题库判断_博学谷Java开发面试基础笔试题及答案分享

    博学谷Java开发面试基础笔试题分享:char 型变量中能不能存贮一个中文汉字?为什么?"=="和 equals 方法究竟有什么区别?静态变量和实例变量的区别?是否可以从一个 st ...

  9. Java面试宝典_君哥讲解笔记04_java基础面试题——String s=new String(“xyz“);创建了几个String Object、equals和hashCode、hashCode(

    java基础面试题目录 文章目录 java基础面试题目录 前言 String s=new String("xyz");创建了几个String Object[重要] 全面理解: St ...

  10. python实习生基础面试题_常见的Python基本面试问题,python,基础,面试题

    常见 python 基础面试题 1,文件操作时:xreadlines和readlines的区别? readlines()是把文件的全部内容读取到内存,并解析一个list,当文件的体积很大的时候,需要占 ...

最新文章

  1. 基于Transformer的高效、低延时、流式语音识别模型
  2. cics oracle xad_Cics安装与配置
  3. poj3617Best Cow Line
  4. wine应用运行后字体都是问号
  5. js方式调用php_javascript调用PHP和PHP调用javascript的方法
  6. 模板 · ISAP网络流+GAP优化+弧优化
  7. 数据分析在企业中的应用
  8. windows下kangle虚拟主机-easypanel跑iis6.0开php空间并支持ZendOptimizer教程
  9. 蓝湖 Figma 插件被下架了怎么办?蓝湖的替代品列表
  10. 怎么获取c++股票数据接口?
  11. 怎么查看微信收藏功能的剩余可用空间
  12. Co-occurrence网络图绘制教程(附详细代码)
  13. 德玛西亚皇子背景故事
  14. redis源码阅读三-终于把主线任务执行搞明白了
  15. android修改checkbox样式边框颜色
  16. 【DFS】先简单说说DFS分布式存储系统和fastDFS
  17. 马云曾经偶像,终于把阿里留下的 1400 亿败光了
  18. OpenGL ES 高级进阶:EGL及GL线程
  19. Leetcode 999. Available Captures for Rook
  20. JS弹出确认、取消对话框

热门文章

  1. Mac OS X 上用 otool 代替 ldd
  2. JAVA计算机毕业设计钢材商贸公司网络购销管理系统Mybatis+系统+数据库+调试部署
  3. pdf阅读,保存上次阅读位置
  4. [日推荐]『拉勾招聘』手机APP可以卸掉啦!
  5. PCB Layout各层含义与分层原则
  6. 功能全面的开源小程序商城-CRMEB
  7. 试卷自动生成工具使用说明
  8. 记录:zlog交叉编译出aarch64的libzlog.a
  9. 生产企业ERP流程是什么
  10. android zip winrar,WinRAR Zip Unzip Archive