SpringBoot面试精讲:2023年核心知识点与解答

需积分: 5 0 下载量 172 浏览量 更新于2024-08-03 收藏 6KB MD 举报
"SpringBoot最新2021年面试题及答案,汇总版" ### SpringBoot核心知识点 **1、SpringBoot-starter-parent的作用** - **Java编译版本**:默认设置项目的Java编译版本为1.8(可能随着SpringBoot版本的更新而变化)。 - **字符编码**:确保项目使用UTF-8格式编码,有利于处理中文字符。 - **依赖管理**:继承自`spring-boot-dependencies`,提供依赖的版本管理,避免在引入其他SpringBoot起步依赖时需要指定版本号。 - **打包配置**:包含项目的打包设置,如jar或war格式。 - **资源过滤**:自动处理资源文件的过滤,比如替换版本号等。 - **插件配置**:自动化配置Maven插件,简化构建过程。 - **环境配置**:处理`application.properties`和`application.yml`,包括不同环境的配置文件,如`application-dev.properties`和`application-dev.yml`。 ### Shiro、OAuth与CAS的关系及权限设计 **2、Shiro、OAuth和CAS** - **Shiro**:Apache Shiro是一个轻量级的安全框架,主要用于权限管理和认证,提供了用户身份验证、授权、会话管理和安全性相关的API。 - **OAuth**:OAuth是一种授权协议,允许第三方应用在用户授权的情况下访问其受保护的资源,常用于实现第三方登录功能。 - **CAS**:Central Authentication Service,是一个开源的单点登录(SSO)系统,允许用户在一个地方登录后,无须再次登录就能访问其他系统。 在企业实践中,通常会结合使用这些技术,如OAuth用于多后台统一登录认证,Shiro则负责具体的权限控制。 **3、SpringBoot、SpringMVC与Spring的区别** **1、Spring** - **依赖注入(DI)/控制反转(IOC)**:Spring的核心特性,通过容器管理对象及其依赖关系,实现松耦合和易于测试。 **2、SpringMVC** - **MVC架构**:SpringMVC是Spring框架的一个模块,专门处理Web请求,它实现了Model-View-Controller模式,将业务逻辑、数据和用户界面分离。 - **处理流程**:接收请求、模型绑定、处理器映射、视图解析等,提供了丰富的拦截器、异常处理等机制。 **3、SpringBoot** - **快速启动**:简化Spring应用程序的初始配置,提供"开箱即用"的体验。 - **自动配置**:基于`@EnableAutoConfiguration`注解,根据项目中的依赖自动配置相关组件。 - **起步依赖(Starter)**:方便引入和管理各种功能的依赖,如`spring-boot-starter-web`、`spring-boot-starter-data-jpa`等。 ### 其他常见面试题 **4、SpringBoot如何处理异常?** - 使用`@ControllerAdvice`和`@ExceptionHandler`注解进行全局异常处理。 - 自定义异常类型和异常翻译机制。 - 配置`ErrorController`处理HTTP错误状态码。 **5、SpringBoot的Profile有何用处?** - 多环境配置,例如dev、test、prod等,通过`spring.profiles.active`属性切换不同环境的配置。 - 通过`@Profile`注解在特定环境下激活bean。 **6、SpringBoot的健康检查接口如何使用?** - `/actuator/health`接口可以查看应用健康状况,包括数据库连接、缓存、服务等。 - 可通过`management.endpoints.web.exposure.include`配置暴露哪些监控端点。 以上仅是部分SpringBoot面试题及答案的概述,完整的面试准备还需要涵盖更多主题,如Spring Boot的启动流程、缓存管理、定时任务、日志配置、安全配置、微服务、Docker集成等。对于每个话题,深入理解原理、实践经验和问题解决能力都是关键。