前言
Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。
很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。那么,花费10分钟,由阿里一线架构师,带你梳理Spring框架相关知识。
以下所整理的Spring相关面试题(含答案)、Spring全家桶实战文档
一、手撕Spring框架之面试题篇
01 Spring AOP相关面试题
- 什么是 AOP?
- point cut,advice,Join point是什么?
- join point 和 point cut 的区别?
- 怎么理解面向切面编程的切面?
- 谈谈对SpringAOP Weaving(织入)的理解?
- 谈谈SpringAOP Introduction(引入)的理解?
- 讲解OOP与AOP的简单对比?
- 讲解JDK 动态代理和 CGLIB 代理原理以及区别?
- 讲解Spring 框架中基于 Schema 的 AOP 实现原理?
- 讲解Spring 框架中如何基于 AOP 实现的事务管理?
02 Spring IOC相关面试题
- 什么是 IOC?
- 谈谈对控制反转的设计思想的理解?
- 怎么理解 Spring IOC 容器?
- Spring 中有多少种 IOC 容器?
- Spring IOC 怎么管理 Bean 之间的依赖关系,怎么避免循环依赖?
- 对Spring IOC 容器的依赖注入的理解?
- 说说对Spring IOC 的单例模式和高级特性?
- BeanFactory 和 FactoryBean 有什么区别,BeanFactory 和 ApplicationContext 又有什么不同?
- Spring 在 Bean 创建过程中是如何解决循环依赖的?
- 谈谈Spring Bean 创建过程中的设计模式?
03 注解相关面试题
- 注解是一种什么样的编程思想?
- 为何能够直接使用@Autowired进行依赖注入?是如何工作的?
- Spring 是如何通过@AutoWired 自动注入 Bean 属性和 Map,List 集合的?
- @Required 是如何起到检查xml里面属性有没有被配置的?
- Spring 框架是如何把标注@Component 的 Bean 注入到容器?
- @Configuration,@ComponentScan,@Import,@Bean 注解是是如何工作的?
- 使用@PropertySource 引入配置文件,那么配置文件里面的配置是如何被注册到 Spring 环境里面的?
- 讲解如何通过自定义注解实现一个简单的树形文档生成?
04 事务相关面试题
- 在 XML 里面配置了一个 SqlSessionFactoryBean 后,其究竟做了什么?
- 在 XML 里面配置了一个 MapperScannerConfigurer 后,其究竟做了什么?
- 在执行 Mapper 接口的查询方法后,发生了什么?
- <tx:advice/>、<aop:config> 标签如何创建事务切面的?
- 标签添加后为何就可以使用注解式事务了?
- 为什么会报 Transaction rolled back because it has been marked as rollback-only 异常?
- Transactional 注解是否可以加在 private、protected 方法上?
- 事务的传播属性到底有什么用,嵌套事务到底又是怎么一回事?
- 为什么抛出了异常,事务却没有回滚?
- Spring 事务是如何保证线程安全的?
05 代理模式相关面试题
- 为什么需要代理模式?
- 讲讲静态代理模式的优点及其瓶颈?
- 对Java 接口代理模式的实现原理的理解?
- 如何使用 Java 反射实现动态代理?
- Java 接口代理模式的指定增强?
- 谈谈对Cglib 类增强动态代理的实现?
手撕Spring框架面试题答案:
二、手撕Spring全家桶之实战篇
01 Spring技术内幕(深入解析Spring架构与设计原理)
- 第1章 Spring的 设计理念和整体架构
- 第2章 Spring Framework的核心: IoC容器的实现
- 第3章 Spring AOP的实现
- 第4章 SpringMVC与Web环境
- 第5章 数据库操作组件的实现
- 第6章 Spring事务处理的实现
- 第7章 Spring远端调动的实现
- 第8章 安全框架ACEGI的设计与实现
- 第9章 Spring DM模块的设计与实现
- 第10章 Spring Flex的设计与实现
02 SpringBoot 实战
在过去的一年多时间里,最让人兴奋、回头率最高、.最能改变游戏规则的东西,大概就是SpringBoot了。Spring Boot提供了一种新的编程范式,能在最小的阻力下开发Spring应用程序。有了它,你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功夫,甚至完全不用配置。实际上,Spring Boot的一项重要工作就是让Spring不再成为你成功路上的绊脚石。
- Spring入门
- 开发第一个应用程序
- 自定义配置
- 测试
- Groovy 与Spring Boot CLI
- 在Spring Boot中使用Grails
- 深入Actuator
- 部署Spring Boot应用程序
03 看透SpringMVC源代码分析与实践
- 第一篇 网站基础知识
- 第二篇 俯视Spring MVC
- 第三篇 Spring MVC组件分析
- 第四篇 总结与补充
04 疯狂Spring Cloud微服务架构实战
- 第1章 Spring Cloud概述
- 第2章 搭建开发环境
- 第3章 微服务发布与调用
- 第4章 负裁均衡
- 第5章 REST客户端Feign
- 第6章 Spring Cloud的保护机制
- 第7章 微服务集群网关
- 第8章 微服务 与消息驱动
- 第9章 集群配置中心
- 第10章 微服务跟踪
- 第11章 微服务数据库实战
- 第12章 案例实战
写在最后
对于很多开发人员来说,Java框架是Java学习路上的一大路障,而掌握Spring框架,是对一名合格开发人员的基本要求,因此,学习Spring,掌握并灵活使用,很有必要。
本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。
文章展示就到这里,感兴趣的朋友可以帮忙点赞转发下,大家的支持就是对我最好的认可。