对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了主要考察的内容。
这里说「天方夜谭」并不是说算法没用,不切实际,而是想说算法平时其实很少用到,甚至面试官都对自己出的算法题一知半解。
这里总结打磨了 70 道 Spring 相关面试题,有的很基础,有的很细节,大家可以评估一下自己掌握的情况。
Spring
重点要掌握 Spring Framework。
- IoC 属于哪种设计模式?
- 谈谈你对 Spring IoC 和 DI 的理解,它们有什么区别?
- 简单谈谈 IoC 容器的原理。
- bean 的 scope 有几种类型?请详细列举。
- 说说 IoC 中的继承和 Java 继承的区别。
- IoC 中 car 对象的配置如下,现在要添加 user 对象,并且将 car 注入到 user 中,正确的配置是?
<bean id="car" class="com.southwind.entity.Car"></bean>
- 请分别写出 IoC 静态工厂方法和实例工厂方法的配置。
- IoC 自动装载有几种方式?
- 介绍一下 Spring 框架中 bean 的生命周期。
- IoC 容器自动完成装载,默认的方式是?
Spring MVC
这部分重点在常用模块的使用以及 Spring MVC 的底层实现原理。
- 简单谈谈你对 MVC 的理解。
- 什么是 Spring MVC ?简单介绍下你对 Spring MVC 的理解?
- Spring MVC 的优点有哪些?
- Spring MVC 的核心组件有哪些?
- Spring MVC 的实现流程是什么?
- Spring MVC 怎么样设定重定向和转发的?
- 如何解决 POST 请求和 GET 请求的中文乱码问题?
- @ModelAttribute 注解应该如何使用?
- 说说你对自定义数据类型转换器的理解。
- 使用 Hibernate Validator 注解方式校验 Email 数据格式应该怎么写?
与 MyBatis 相关
MyBatis 在实际项目开发中会与 Spring MVC 整合使用。
- 简单谈谈你对 Mybatis 的理解?
- MyBatis 接口绑定的优点是什么?
- 实现 MyBatis 接口绑定分别有哪几种方式?
- MyBatis 如何实现一对一关联关系?
- MyBatis 如何实现一对多关联关系?
- 说说 MyBatis 动态 SQL 的具体使用步骤?
- MyBatis 与 Hibernate 的区别是什么?
- MyBatis 如何实现模糊查询?
29、Nginx 反向代理实现高并发的具体步骤是什么?
30、Nginx 搭建 Tomcat 集群的核心配置应该怎么写?
与 MongoDB 相关
关注 MongoDB 基础以及 Spring 全家桶的整合方案 Spring Data MongoDB 的使用。
- 谈谈你对 MongoDB 的理解?
- MongoDB 有哪些特点?
- MongoDB 都有哪些主要功能?
- 说说你知道的 MongoDB 适用场景。
- 关闭 MongoDB 服务的命令是?
- MongoDB 创建数据库的命令是什么?
- 谈谈你对 Spring Data JPA 的理解?
- Spring Data JPA 删除多条记录并返回的代码是?
- 谈谈 Spring Data JPA 的底层实现。
- Spring AOP 的原理是什么?都有哪些具体的应用场景?
Spring Boot
Spring 全家桶的重头戏,Spring Boot 作为一个快速构建 Spring 应用的利器,对各种主流框架模块做了很好的集成,开箱即用。专注 Spring Boot 的具体操作和一些 Redis 相关知识。> 推荐阅读《精通 Spring Boot 42 讲》。
- 谈谈你对 Spring Boot 的理解?
- Spring Boot 的优势是什么?为什么要使用 Spring Boot?
- Spring Boot 的配置文件有几种格式?区别是什么?
- 谈谈你知道的 Spring Boot 核心注解。
- 如何自动开启 Spring Boot 各个组件?
- Spring Boot 中 starter 的原理是什么?
- Spring Boot 不能使用 XML 配置,这句话对吗?
- 谈谈你对 Redis 的理解。
- 简单说说 Redis 的实现原理。
- 什么是 Thymeleaf?
Spring Cloud
Spring Cloud 作为 Spring 中最热门的模块,包括服务网关、Ribbon、Feign、Hystrix、Spring Cloud Config 等,专注实际开发中常用的技能点,同时具备使用 Spring Cloud 搭建微服务架构的能力。
- 什么是 Spring Cloud?
- Spring Cloud 和 Spring 之间有什么关联关系?
- Spring Cloud 实现服务注册和发现的原理是什么?
- Ribbon 和 Feign 有什么区别?
- 为什么要使用 Spring Cloud 熔断器,它的作用是什么?
- 什么是 Hystrix?
- Eureka 和 ZooKeeper 有哪些区别?
- 为什么要使用负载均衡?
- Spring Cloud 实现服务注册和发现的具体流程是什么?
- 为什么要使用 Spring Cloud ,它有哪些优势?
微服务项目实战相关
实际工作中 Spring 微服务项目的问题。
- 谈谈你对微服务的理解。
- 微服务分别有哪些优点,哪些缺点?
- 谈谈微服务之间是如何实现通信的。
- Spring Boot 如何集成 MyBatis?
- Spring Boot 和 Spring Cloud 有哪些区别?
- 使用 layui 的数据表格组件展示业务数据,后台实体类应该如何定义?
- JPA 和 Spring Data JPA 是一回事吗?
- 如果要给项目添加权限管理系统,一般包含哪些需求?
- 微服务架构的拆分都有哪些原则?
- Feign 和 Ribbon+RestTemplate 的区别是什么?
《案例上手 Spring 全家桶》课程亮点
- Spring 技术零基础轻松入门
- 68 讲更全面地覆盖 Spring 全家桶核心模块
- 100+ 段代码示例,理解 Spring 全家桶要领
- 3 大项目实战,掌握 Spring 全家桶实际应用
- 精选 70 道 Spring 高频面试题检验学习成果
- 免费赠送 16+ 小时的 Spring 实战视频
- Spring 技术交流社群
你能收获什么
- 掌握 Spring 全家桶核心模块的实际应用
- 掌握 Spring Boot Web 开发技术
- 掌握 Spring Boot 集成常用的关系 / 非关系型数据库
- 掌握 Spring Cloud 微服务开发技术
- 掌握更多实际工作中的开发技巧
- 具备 Java 高级开发的技能要求