又快到了金三银四的时间了,自己整理一些面试题,希望对大家有帮助。
一、什么是Spring Boot?
简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
二、Spring Boot 优点有哪些?
- 部署简单、独立运行(不需要预部署应用服务器,通过默认内嵌tomcat降低对运行环境的基本要求)
- 简化配置(基于properties/xml 文件配置转换成予以更为强大的yml文件)
- 自动配置(对常用的功能组件提供了默认的starter依赖来简化Maven配置)
- 监控更简单(基于spring-boot-actuator组件,通过restful接口获取Jvm性能指标、线程状态等运行信息)
三、核心配置文件有哪些?区别是什么?
Spring Boot 核心配置文件application和bootstrap
application 主要用于Spring Boot项目的配置。
bootstap:使用Spring Cloud Config 配置中心时,需要在bootstap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;例如eurka注册中心等;
四、Spring Boot 配置文件有几种格式?
.properties和.yml,区别主要是书写格式不一样,properties文件都需要写全,yml前面相同的可以不写,一层对应一层就好了。
1.properties
server: port: 8086
2.yml
server:
port: 8086
yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的。
官方给的很多demo,都是用yml文件配置的。
注意点:
1,原有的key,例如spring.jpa.properties.hibernate.dialect,按“.”分割,都变成树状的配置
2,key后面的冒号,后面一定要跟一个空格
3, application.properties优先级比application.yml高
五、Spring Boot怎么读取配置?
Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量,
六、SpringBoot 支持哪些日志框架? 推荐和默认的日志框架是什么?
支持Logging,Log4j2,Logback作为日志框架,如果使用Starters启动器,Spring Boot将使用LogBack作为默认日志框架
七、如何定义多套不同环境配置?
提供多套配置文件,例如:
基于properties:
application-dev.properties
application-test.properties
application-prod.properties
基于yml:
server:
port: 8080my:
name: demospring:
profiles:
active: dev---
#development environment
spring:
profiles: devserver:
port: 8160my:
name: ricky---
#test environment
spring:
profiles: testserver:
port: 8180my:
name: test---
#production environment
spring:
profiles: prodserver:
port: 8190my:
name: prod指定环境启动
1.jar运行方式
java -jar xx.jar --spring.profiles.active=prod
2.插件启动方式
spring-boot:run -Drun.profiles=prod
八、保护Spring Boot应用有哪些方法?
生产环境使用https
启用csrf保护
使用内容安全策略防止Xss攻击
待续.....