SpringBoot面试深度解析
需积分: 3 78 浏览量
更新于2024-08-03
收藏 506KB PDF 举报
"这份PDF文件包含了关于Spring Boot的最新面试题集,涵盖了Spring Boot的基础、配置、安全、监视器、整合第三方项目以及其他相关主题。"
# Spring Boot面试知识点详解
## 1. Spring Boot概述
Spring Boot是Spring框架的一个子项目,设计目标是简化Spring应用的初始搭建以及开发过程。它通过提供预配置的启动器(starters)和自动配置功能,使得创建独立运行的Spring应用变得极其简单。
## 2. Spring Boot的优点
- 快速起步:通过内嵌的Servlet容器(如Tomcat或Jetty),无需额外配置即可运行。
- 减少样板代码:通过自动配置,减少了大量XML配置。
- 开箱即用:包含许多默认配置,如数据源、缓存、日志等。
- 模块化:通过starters方便地引入所需模块。
- 零配置:尽可能地减少手动配置,但同时也允许自定义配置。
## 3. Spring Boot核心注解
- `@SpringBootApplication` 是Spring Boot的核心注解,结合了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`三个注解。
## 4. JavaConfig与自动配置
- JavaConfig:Spring Boot使用Java类替代XML配置,提高可读性和可维护性。
- 自动配置原理:基于`@Conditional`注解,根据类路径中的存在情况、环境变量、属性值等条件,自动配置Bean。
## 5. 配置加载顺序
- `application.properties`或`application.yml`文件,根据`spring.profiles.active`指定的profile加载对应的配置。
- `bootstrap.properties`或`bootstrap.yml`用于初始化配置,如连接配置服务器。
- 启动时的命令行参数。
- JVM系统属性。
- 环境变量。
- 默认值。
## 6. YAML配置
- YAML比properties更易读,支持层级结构。
- YAML的优势在于其清晰的语法和对复杂数据结构的良好支持。
## 7. Spring Profiles
- Spring Profiles用于在不同环境中切换配置。
- 可通过`spring.profiles.active`属性激活特定Profile。
## 8. 端口配置
- 使用`server.port`属性设置自定义端口运行Spring Boot应用。
## 9. 安全性
- 可通过`@EnableWebSecurity`启用Spring Security进行安全控制。
- Spring Security与Shiro各有优缺点,前者功能强大但学习曲线较陡峭,后者轻量级且易于上手。
## 10. 跨域问题
- 使用`@CrossOrigin`注解或全局过滤器处理跨域请求。
## 11. 监视器
- Spring Boot Actuator提供了健康检查、审计、指标等监控功能。
- 通过配置`management.endpoints.web.exposure.include`禁用Actuator端点安全性。
## 12. 第三方项目整合
- WebSockets用于实时通信。
- Spring Data简化数据访问,支持多种数据库。
- Spring Batch用于批处理操作。
- FreeMarker是模板引擎,用于生成动态HTML。
- SpringBoot可与ActiveMQ集成,实现消息队列功能。
- Apache Kafka是分布式流处理平台。
- Swagger用于API文档的生成和管理。
## 13. 热部署
- 使用Spring Loaded或JRebel实现热部署,修改后无需重启即可看到变更。
- `spring-boot-devtools`模块也可实现自动重启。
## 14. Maven依赖
- Starters是Maven依赖的集合,如`spring-boot-starter-web`用于web开发。
- `spring-boot-starter-parent`作为父POM,提供版本管理和默认配置。
## 15. Jar区别
- Spring Boot的jar是可执行的,包含内嵌的Servlet容器。
- 普通jar通常不包含运行时依赖。
## 16. 运行方式
- 直接运行主类。
- 打包成jar后使用`java -jar`运行。
- 使用IDEA或Maven插件运行。
## 17. 无需独立容器
- Spring Boot应用内置了Servlet容器,可直接运行,无需外部容器。
## 18. 特性开启
- 通过`@Enable*`注解开启特性,如`@EnableCaching`开启缓存。
- 配置文件中设置属性来开启或关闭特性。
## 19. 异常处理
- 自定义`@ControllerAdvice`处理全局异常。
- 使用`@ExceptionHandler`处理特定异常。
## 20. 分页排序
- 使用Spring Data JPA的`Pageable`接口实现分页查询。
- `Sort`对象用于排序。
## 21. Session共享
- 在微服务中,可以使用Redis、 Hazelcast 或共享Cookie等实现Session共享。
## 22. 定时任务
- 使用`@Scheduled`注解创建定时任务。
- 配合`@EnableScheduling`开启调度任务。
这些知识点涵盖了Spring Boot的各个方面,对于准备面试或深入理解Spring Boot的开发者都非常有帮助。
198 浏览量
111 浏览量
点击了解资源详情
109 浏览量
161 浏览量
2024-03-01 上传
2023-03-08 上传
2024-02-03 上传
725 浏览量
埃里克斐儿
- 粉丝: 5
- 资源: 6
最新资源
- npm-snl-domjs
- Ajax-RestClient.zip
- CSS实现的鼠标移动到图片上显示文字说明内容
- csv-obsidian:在Obsidian中编辑CSV文件
- 企业易站EES v2.11 beta 3.zip
- 撰写样本:Jetpack官方撰写样本
- Stonks:Stonks-Discord的开源生活游戏bot
- MyResource:iOS动手练习小项目
- 简洁多边形商业融资计划书PPT模板
- Ajax-log-listener.zip
- jdk api 1.8_资源合集.zip
- SIM7000-LTE-Shield:具有GNSS和温度传感器的LTE CAT-MNB-IoT Arduino兼容保护罩。 库支持SIMCom 2G3G4G LTECAT-MNB-IoT
- 水星蒙特哥:水星蒙特哥计划
- ghetto-skype:Web Skype +托盘图标+通知
- m3u8 视频在线提取下载工具 支持转MP4格式 HTML源码
- java.util源码-java-util:javautil源代码