SpringBoot篇
1.什么是springboot?
springboot是spring的一个子项目,是spring的一站式解决方案,主要简化了spring的使用难度,降低了对配置文件的要求,使得开发人员能够更容易上手
2.为什么使用springboot?
- 简化了spring配置
- 没有代码和xml文件的生成
- 内置tomcat
- 能够独立运行
- 简化监控
3.springboot核心配置文件有哪几个?它们的区别?
application和bootstrap
application主要用于springboot的自动化配置
bootstrap:1.用在springcloud 2.加密解密场景 3.一些固定不能被覆盖的属性
4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?
.properties和.yml,它们的区别主要是书写格式不同
5、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
@springbootapplication包含三个注解:
@EnableAutoConfiguration:打开自动配置功能
@SpringBootConfiguration:实现配置文件的功能
@ComponentScan:spring组件扫描包
6.开启 Spring Boot 特性有哪几种方式
有两种
继承spring-boot-starter-parent项目
导入spring-boot-dependencies项目依赖
7.Spring Boot 需要独立的容器运行吗?
可以不用,内置tomcat/jetty等容器
8.运行 Spring Boot 有哪几种方式
打包用命令或者在容器中运行
在maven插件运行
直接执行main运行
9.Spring Boot 自动配置原理是什么
注解@EanableAutoConfiguration,@Configuration,@ConditionalOnClass就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置
10.你如何理解 Spring Boot 中的 Starters
starters可以理解为启动器,它包含了一系列可以集成到应用的依赖包,你可以一站式集成spring及其它技术,而不需要到处找示例代码和依赖包
11.如何在 Spring Boot 启动的时候运行一些特定的代码
可以实现接口ApplicationRunner或者CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法
12.Spring Boot 有哪几种读取配置的方式?
@PropertySource @Value @Environment @ConfigurationProperties来绑定变量
13.Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
java util logging、log4j2、logback作为日志框架,如果使用starts启动器,spring boot 将使用logback作为默认日志框架
14.SpringBoot 实现热部署有哪几种方式
spring loaded
spring-boot-devtools
15.你如何理解 Spring Boot 配置加载顺序?
properties文件
YAML文件
系统环境变量
命令行参数
16.Spring Boot 如何定义多套不同环境配置
.properties多建几个文件,并用spring.profile.active 激活配置
.yml只需在一个文件里实现
17.Spring Boot 可以兼容老 Spring 项目吗,如何做?
可以兼容,使用@ImportResource注解导入老spring项目配置文件
18.保护 Spring Boot 应用有哪些方法?
在生产中使用https
升级到最新版本
开启csrf保护
使用内容安全策略防止xss攻击
管理密码
安全的存储密码
让安全团队代码审查
19.Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
配置变更
jdk升级
第三方类库升级
响应式spring编程支持
http/2支持
配置属性绑定