面试官拿起程序员小马的简历看了看,原本平平无奇的内容丝毫提不起面试官的兴趣,看到技能那一栏时,突然出现的“精通”二字显得格外的耀眼。
面试官猛地抬起头看着这位年轻人,生着一副27岁的人本就有的面孔,面试官略显失望,再从衣着搭配上下打量一番过后,面试官的目光终于落在了程序员小马茂密的头发上,眼底顿时闪过一丝不屑。
呵~终究是个年轻人...
面试官:小伙子,看起来挺年轻的啊!
程序员小马(以为是夸奖自己):哪里哪里,您看起来也年轻!
面试官(眉头一皱):胡说八道,我这头顶白秃的吗?
程序员小马本意是礼貌的回捧面试官,但没想到面试官突如其来的变脸,一时有点不知所措...
面试官(打破了面试现场短暂的平静):看你简历上写的精通Spring,那我们就先从你熟悉开始问吧!你先说说你对Spring的理解?
程序员小马:我觉得Spring就像是个万能接口,可以对接非常多的开源接口。像我接触过的项目有规则引擎,做推荐,做营销活动,做秒*等等。
面试官:讲一下你用Spring的一些初衷?
程序员小马:首先,Spring其实有很多特点,这些也是我们用它的原因。Spring本身占用的空间就很小,也就是我们在技术用语中说的轻量级;
其它的特点还有控制反转啊,面向切面啊,事务管理,异常处理等等;
其次,对我来说Spring方便解耦,简化开发,主要还是避免重复造轮子!
Spring可以说已经是业界标准了,经过了无数项目的实战检验。遇到问题也可以向全世界的开发人员请教,可以帮忙指出思路或解决方案。
面试官:嗯,不错。你知道spring的生命周期初始化回调方法有几种方法实现?或者说他们的执行时机和在bean的生命周期哪里体现了?
程序员小马:额~Spring的生命周期初始化方法官方有三种实现,分别是xml自定义方法实现,接口的形式实现和在方法上加注解实现,三者可以共存,但是执行时机和顺序不同。Spring的bean在完成实例化后调用beanpostprocessor的after方法之前会回调这些初始化方法。
面试官:有点东西哦~能不能说说Spring AOP 的实现原理?
程序员小马:这个...
面试官:那SpringMVC呢?
程序员小马:...
面试官:那还有,ApplicationContext通常的实现是什么?@Required注解?@Autowired注解?
@Qualifier注解?...
程序员小马:这我知道一些...
面试官:但你这不是精通啊!
程序员小马:
程序员小马(终于忍不了了):动不动问原理,你自己知道吗?面试官你来把Spring的原理讲清楚?讲出来我给你开25K!
面试官:哦!不用了,我现在年薪80W...