面试官:Spring的事务传播属性是如何实现的?
我:结合数据库连接去理解,我们在工作中常用的,有REQUIRED,REQUIRES_NEW,NESTED三种传播属性,在Spring底层实现中,它会根据传播属性的不同,去使用数据库连接,在源码中(省略500字),我们使用时,应该根据业务进行具体判断。
面试官:Spring的事务隔离级别是如何实现的?
我:高并发场景下,为了保证竞争资源的安全性,就会考虑隔离级别的问题,结合您刚才问到的事务的传播属性,实际隔离级别这个问题,我觉得结合数据库的MVCC&LBCC(省略500字),来结合业务场景会更加合适。
隔离性您真的了解么?在MySQL5.5+,InnoDB存储引擎中,如果表my_table_innodb中,id=12345,age=18,在下上事务中,Q1,Q2,Q3的查询结果分别是什么?
面试官:答的很好,最后一个问题:如果没有Spring,你打算怎么开展工作?
这个思考了几分钟后,我是这么回答的:Spring的核心源码,比如:IOC、AOP、Spring事务、MVC原理等从02年到现在基本80%都没有改动过,核心源码我还是有信心把控的,手写一个类似Spring的核心框架,在我的能力范围内。
另外,如果业务比较紧急,git上有很多可借鉴开源项目,因为我本人对Spring源码的了解,改造起来不会花费太多时间;
面试官:你本人对公司有什么要求(喜闻乐见的谈薪水时刻)?
(省略500字)
明天可以来上班吗?
做程序员难,做一个2020年的程序员更难,随着IT人员越来越多,我们的竞争压力也越来越大,想要在茫茫人海中脱颖而出,其实考察的就是我们技术栈的广度和深度。
做Java的人,应该都听说过一句话:Spring重新定义了Java。
Spring底层到底要看什么?以下是我的学习笔记,给大家分享一下,希望可以对你掌握Spring有所帮助。(xmind格式可在文末获取)
Spring作为现在最流行Java开发技术,其内部源码设计非常优秀。但是相当一部分程序员没有用过Spring,或者说,即使用过,也是建立在SSM,SSH等框架基础上的CRUD,只关注自己用的那部分代码的逻辑,而并不真正去理解框架,完全不懂Spring底层原理。
Spring源码都不懂,还敢去面试?
为了帮助大家深刻理解Spring底层源码,并将它应用到工作中。我整理出一份Spring面试全家桶,供大家学习,由于篇幅的原因,下面只展示了部分的目录,如有需要的朋友,可以点赞+关注后,点击右方链接:https://shimo.im/docs/QVy8HrQgPYkx9Ddg/,即可免费获取领取方式!
目录部分:
Spring 全家桶:
- Spring 原理
- Spring面试题
- 思维导图
- 面试题
- Spring视频
Spring 原理
- Spring特点
- Spring 核心组件
- Spring常用模块
- Spring主要包
- Spring常用注解
- Sping第三方结合
- Spring 10C原理
- Spring APO原理
- Spring MVC原理
- Spring Boot原理
- JPA原理
- Mybatis缓存
- Tomcat架构
Spring面试题
一**、基本概念面试题集( Spring 相关概念梳理)**
1.谈谈对Spring loC的理解?
2.谈谈对Spring DI的理解?
- BeanFactory接口和ApplicationContext接口不同点是什么?
4.请介绍你熟悉的Spring核心类,并说明有什么作用?
5.介绍一下 Spring 的事务的了解?
6.介绍一下Spring 的事务实现方式?
7.解释AOP模块
8. Spring的通知类型有哪些,请简单介绍一下?
9. Spring通知类型使用场景分别有哪些?
10.请介绍一下你对 Spring Beans的理解?
11. Spring 有哪些优点?
12.在Spring中使用hibernate的方法步骤
13. Spring和Struts的区别?
14. Spring框架由那几部分组成?
15.谈谈你对BeanFactory的理解,BeanFactory 实现举例
16.谈谈对Spring中的Web模块的理解
- BeanFactory和Application contexts有什么区别?
18.谈谈你对Spring依赖注入的理解?
19.什么是Bean装配?
20.什么是Bean的自动装配?
21.介绍一下自动装配有几种方式?
22.什么是基于注解的容器配置?
23.简述JdbcTemplate类的作用
24.解释AOP
25.解释Aspect切面
26.简述Spring AOP中的通知
27. Spring AOP中的织入你怎样理解?
28.请详细介绍一下 Spring MVC的流程?
-
Spring 配置文件?
-
@RequestMapping注解用在类上面有什么作用
31.怎么样把某个请求映射到特定的方法上面
32.谈谈Spring对DAO的支持
二、应用场景面试题集(各知识点不同使用场景选型)
-
Spring配置Bean实例化有哪些方式?
-
Bean注入属性有哪几种方式
35.在Spring中如何实现时间处理?
- Spring中如何更高效的使用JDBC ?
37.请介绍一下设计模式在Spring 框架中的使用?
38.讲讲Spring框架的优点有哪些?
39.哪种依赖注入方式你建议使用,构造器注入,还是Setter方法注入
40.你怎样定义类的作用域?
41.解释Spring支持的几种Bean的作用域
42.在Spring中如何注入一个Java集合?
43.你可以在Spring中注入-个null和一个空字符串吗?
44.什么是基于Java的Spring注解配置?给一-些注解的例子
45.你更倾向用那种事务管理类型?
-
Bean的调用方式有哪些?
-
Spring MVC里面拦截器是怎么写的
48.当一个方法向AJAX返回特殊对象,譬如Object. List 等,需要做什么处理?
49.如何使用Spring MVC完成JSON操作
-
Spring如何整合Hibernate
-
Spring如何整合Struts2 ?
52.开发中主要使用Spring的什么技术?
53.介绍一下Spring MVC常用的一-些注解
- Spring 框架的事务管理有哪些优点
三、深度度知识面试题集(底层实现原理详解)
-
loC控制反转设计原理?
-
Spring的生命周期?
-
Spring如何处理线程并发问题?
58.核心容器(应用上下文)模块的理解?
59.为什么说Spring是一个容器?
-
Spring的优点?
-
Spring框架中的单例Beans是线程安全的么?
-
Spring框架中有哪些不同类型的事件?
-
loC的优点是什么?
64.解释Spring框架中Bean的生命周期
65.什么是Spring的内部Bean?
66.自动装配有哪些局限性?
- Spring框架的事务管理有哪些优点?
68.在Spring AOP中,关注点和横切关注的区别是什么?
69.说说Spring AOP的底层实现原理?
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!