1.什么是spring boot?
- 建立现有的spring 框架之上,提供快速使用spring框架的解决方案,基于约定优于配置;
2.spring boot的优点?
- 实现自动装配;嵌入服务器,增强spring的功能;
- 减少开发,测试时间和努力;
- 起步依赖避免大量 的Maven导入和各种依赖版本的冲突问题;
- 通过提供默认值快读开始开发;
3.SpringBoot的配置文件
- springboot配置文件有三种格式:properties和yaml、yml;默认的配置文件是properties
- 区别:
- properties是键值对形式key和value用 - 区分,如:server.port=8080;
- yml的树状层级结构,用空格区分server: port: 80801;
- 优先级比较:properties > yml > yaml;yml特点:大小写敏感;数据值前面必须有空格作为分隔符;使用缩进表示层级;缩进不能用tab键,只容许使用空格,可能会导致层级混乱;#表示注解
4.profile配置项目环境
- profile配置环境的激活方式
- 在配置文件中是通过spring.profiles.active 节点进行配置的,
- 在虚拟机中通过在VMoptions指定-Dspring.profiles.active,
- 在命令行通过java-jar xxx.jar —spring.profiles.active=dev来指定;
- 开发环境有:
- dev-开发环境
- test-测试环境
- pro-生产环境;
- profile配置方式
- 多profile文件方式:提供多个配置文件,每个代表一种环境
- application-dev.properties/yml 表示开发环境配置文件
- application-test.properties/yml 表示测试环境配置文件
- application-pro.properties/yml 表示生产环境配置文件
- 单配置文件多文档配置方式
- 在yml中使用 —-分隔不同的环境配置,实现单配置文件多文档配置方式
- 多profile文件方式:提供多个配置文件,每个代表一种环境
5.SpringBoot配置文件加载顺序
- springboot程序启动时,会从以下位置加载配置文件(优先级顺序排列)
- file:/config/:当前项目下的config目录下
- file:/:当前项目下的根目录下
- classpath:/config/:classpath的/config目录下
- classpath:/:classpath的根目录下
6.springboot自动配置的原理
- SpringBoot关于自动配置的源码在spring‐boot‐autoconfigure‐x.x.x.x.jar中;
- @SpringBootApplication是一个复合注解,在@SpringBootApplication中有一个注解 @EnableAutoConfiguration,翻译成人话就是开启自动配置;这个注解也是一个复合注解,其中的关键功能@Import(AutoConfigurationImportSelector.class)提供,其导入的AutoConfigurationImportSelector类的selectImports()方法通SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包。
- 总结:Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META‐INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个JavaConfig形式的Spring容器配置类,它能通过以Properties结尾命名的类中取得在全局配置文件中配置的属性如:server.port,而XxxxProperties类是通过@ConfigurationProperties注解与全局配置文件中对应的属性进行绑定的
7.如何使用SpringBoot实现异常处理?
- Spring提 供 了 一 种 使 用ControllerAdvice处 理 异 常 的 非 常 有 用 的 方 法 。我 们 通过 实 现 一 个ControlerAdvice类 , 来 处 理 控 制 器 类 抛 出 的 所 有 异 常
8.什么是Swagger?你用SpringBoot实现了它吗?
- Swagger广 泛 用 于 可 视 化API,使 用SwaggerUI为 前 端 开 发 人 员 提 供 在 线 沙 箱。Swagger是 用 于 生 成RESTfulWeb服 务 的 可 视 化 表 示 的 工 具,规 范 和 完 整 框 架 实现。它 使 文 档 能 够 以 与 服 务 器 相 同 的 速 度 更 新。当 通 过Swagger正 确 定 义 时,消费 者 可 以 使 用 最 少 量 的 实 现 逻 辑 来 理 解 远 程 服 务 并 与 其 进 行 交 互。因 此,Swagger消 除 了 调 用 服 务 时 的 猜 测 。
9.什么是WebSockets?
- WebSocket是 一 种 计 算 机 通 信 协 议 , 通 过 单 个TCP连 接 提 供 全 双 工 通 信 信 道
- 双向性:使 用WebSocket客 户 端 或 服 务 器 可 以 发 起 消 息 发 送
- 全双工:客 户 端 和 服 务 器 通 信 是 相 互 独 立 的 。
- 单个tcp连接:-初 始 连 接 使 用HTTP,然 后 将 此 连 接 升 级 到 基 于 套 接 字 的 连 接。然 后 这 个 单 一 连 接 用 于 所 有 未 来 的 通 信
