简历写了精通Spring,今天咱们就聊聊Spring吧!

简历写了精通Spring,今天咱们就聊聊Spring吧!

分享一下前段时间本身第三面的面试经历吧,虽然如今入职的不是BAT,但也算是细分领域里的准独角兽公司了,但愿能够对你有所帮助哈。面试官:一面、二面他们对你的评价很高啊。我看你写着精通Spring,今天咱们就聊聊Spring吧!git

我:走着!程序员

a9deb2c2af928be837f718335c1055ec.jpeg


面试官:谈谈你本身对Spring的理解吧!面试

我:我以为Spring就是个万用排插,能够对接几乎一切的开源接口。像我接触过的项目有规则引擎,作推荐,作营销活动,作秒杀等等。数据库

面试官:你为何用Spring?
我:Spring的优势不少,好比方便解耦,简化开发,可是对我来讲主要仍是避免重复造轮子!编程

Spring能够说已是业界标准了,通过了无数项目的实战检验。遇到问题也能够向全世界的开发人员请教,能够帮忙指出思路或解决方案;安全

还有就是学习Spring的理念,我常常会研究Spring的源码,对本身的Java技术水平和应用开发水平提高很大。Spring框架源码是Java技术的最佳实践范例。服务器

面试官:我很赞同!咱们来问问比较细的点,@Transactional到底作了什么事?架构

我:保证事务的完整性,结合ACID了解。并发

面试官:@Transactional必定能保证事务的ACID么?框架

我:不必定,默认状况下,回滚时,只会回滚Error与RuntimeExcetption。

面试官:Spring有几种事务的实现方式,为何说加了@Transactional注解的业务方法里不适合有长调用?

我:排除自定义事务管理器的话,Spring提供了2种事务管理方式,分别为声明式事务@Transactional(注解式)和编程式事务,若是使用声明式事务,在源码中(省略500字),正常状况下,只有业务方法总体执行完成,才会释放数据库链接,若是业务方法中的长链接调用时间要10s,那么意味着至少10s,当前的数据库链接是没法释放的,数据库链接是很宝贵的资源(省略100字)。

面试官:Spring的事务传播属性是如何实现的?

我:结合数据库链接去理解,咱们在工做中经常使用的,有REQUIRED,REQUIRES_NEW,NESTED三种传播属性,在Spring底层实现中,它会根据传播属性的不一样,去使用数据库链接,在源码中(省略500字),咱们使用时,应该根据业务进行具体判断。

面试官:Spring的事务隔离级别是如何实现的?

我:高并发场景下,为了保证竞争资源的安全性,就会考虑隔离级别的问题,结合您刚才问到的事务的传播属性,实际隔离级别这个问题,我以为结合数据库的MVCC&LBCC(省略500字),来结合业务场景会更加合适。

隔离性您真的了解么?在MySQL5.5+,InnoDB存储引擎中,若是表my_table_innodb中,id=12345,age=18,在下上事务中,Q1,Q2,Q3的查询结果分别是什么?


e9a21f0c2470f34d55b1d5adb45b2e78.jpeg


面试官:答的很好,最后一个问题:若是没有Spring,你打算怎么开展工做?

682c56973125bd75a67db4c28441215d.jpeg


这个思考了几分钟后,我是这么回答的:Spring的核心源码,好比:IOC、AOP、Spring事务、MVC原理等从02年到如今基本80%都没有改动过,核心源码我仍是有信心把控的,手写一个相似Spring的核心框架,在个人能力范围内。

另外,若是业务比较紧急,git上有不少可借鉴来源项目,由于我本人对Spring源码的了解,改造起来不会花费太多时间;

面试官:你本人对公司有什么要求?(喜闻乐见的谈薪水时刻)明天能够来上班吗?


作程序员难,作一个2020年的程序员更难,随着IT人员愈来愈多,咱们的竞争压力也愈来愈大,想要在茫茫人海中脱颖而出,其实考察的就是咱们技术栈的广度和深度

Spring框架为开发Java应用程序提供了全面的基础架构支持。Spring包含了一些很好的功能,如依赖注入和开箱即用的模块:

Spring 框架的问世,给咱们提供了很好的扩展性、易维护性,给咱们的开发提供了便利,效率的提升,节省时间。

Spring的用途不只限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用均可以从Spring中受益。

Spring框架为开发Java应用程序提供了全面的基础架构支持。Spring包含了一些很好的功能,如依赖注入和开箱即用的模块,这些模块能极大缩短应用程序的开发时间,提升咱们的工做效率。

作Java的人,应该都据说过一句话:Spring从新定义了Java

Spring底层到底要看什么?如下是个人学习笔记,给你们分享一下,但愿能够对你掌握Spring有所帮助。

56a9133b98a9eeed9465b9c7f4a4768e.jpegSpring学习笔记

Spring做为如今最流行Java开发技术,其内部源码设计很是优秀。可是至关一部分程序员没有用过Spring,不少用过的程序员对于Spring的理解也只停留在很浅的层面,只关注本身用的那部分代码的逻辑,而并不真正去理解框架,彻底不懂Spring源码。

不懂Spring,你怎么敢去面试啊?


原做者:K8S中文社区
原文连接: 简历写了精通Spring,今天咱们就聊聊Spring吧!
原出处:公众号

73a89e991c257aea92570754b9beca93.jpeg

相关文章
相关标签/搜索