SpringBoot面试深度解析
需积分: 3 130 浏览量
更新于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的开发者都非常有帮助。
2024-08-14 上传
113 浏览量
738 浏览量
139 浏览量
266 浏览量
194 浏览量
270 浏览量
194 浏览量
173 浏览量
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
埃里克斐儿
- 粉丝: 5
最新资源
- JFreeChart图表实例与开发文档详解
- 全面解读PMP项目管理精髓
- 分支理论在项目结构中的应用实践
- Kunna开源系统:跟踪个人与组织证书
- IndexR:分布式列式数据库,大数据实时分析利器
- StockScanner:端到端编程实践探索
- VGA输出实验:实现八色彩条与乒乓球游戏的Verilog程序
- MySQL 8.0与JQuery 3.4.1组合资源包下载
- Spring MVC与Tomcat 7.0.61服务器集成指南
- i18n4go:Golang国际化工具的应用与维护指南
- ButterCake:移动优先设计的Flexbox开源CSS框架
- Gatsby项目中的PORTOFOLIO文件快速导览
- JsTIPS: 多语言传播JavaScript知识的开源博客平台
- 前端验证CPF和CNPJ的实现方法与细节
- 安联锐视监控数据恢复程序:H.264格式录像紧急修复指南
- Java技术干货分享:TelRan-13-M2-2021