这个Java框架面试题,竟然难倒了工作4年的程序员!
一个工作了四年的小伙伴,他说自己从线下培训就开始接触spring,到现在已经快五年时间。他从来没有想过为什么要使用spring框架?结果在面试的时候,突然遇到这样一个问题,大脑一时间短路了,来求助好程序员老师这一类问题怎么样去回答?
下面我们来看一看普通人和高手的回答!
普通人的回答:,为什么要使用什么框架?我认为它核心是有AOP和IOC这两个组件,那么他能够帮我们在程序里面去做一些对象的管理,比如B的管理。我们的程序去构建这种对象的时候,它的耦合性就会更低,因为它统一相对于一个容器。还有它本身类似于黏合剂作用,可以帮我们把很多框架集成进来,对整个做外部开发来说会更加方便。
高手的回答:spring是一个轻量级的应用框架,它提供了AOP和IOC这两个核心的功能,它的核心目的是为了简化企业级的应用开发,使得开发者只需要关心业务的需求,不需要关心BEAN的一些管理,以及通过切片的方式对功能进行增强,从而去减少代码的一个侵入性。从spring本身的特性来看,我认为有几个关键点:
第一,它一个轻量级的框架,它的基本版本只有2MB。
第二,spring通过IOC的容器来去实现BEAN的生命周期管理,以及通过Di来实现依赖注入,从而去实现对象依赖的松耦合管理。
第三,spring提供了AOP的面向切面编程功能,它可以把我们业务逻辑和系统功能之间进行一个切分。
第四,MVC框架,spring MVC提供的功能更加强大且更加灵活的一个框架支持。
第五,事务管理,spring通过AOP去实现一个事的统一管理,对应用开发中的事务处理。
第六,Spring从第一个版本发布到现在,它的整个生态是非常庞大的,在业务开发的领域里面,spring生态几乎提供了非常完善的一个支持,更重要的一个点是它的整个社区的活跃度和技术的成熟度都非常高,所以我们在遇到问题的时候能够得到快速的一个响应。
以上就是小源对这个问题的理解。任何一个技术框架一定是为了解决某些特定场景问题的,只是大家忽略了这个点,为什么要用?再往高一点来说,其实就是技术的选型。能回答这个问题意味着在面对业务场景或者技术问题的解决方案上会有自己的见解和思考。所以啊,我自己也喜欢去在面试的时候问这一类的问题。好的,本期的普通人VS高手的面试系列的视频就到这结束了,有任何不懂的技术面试题欢迎随时私信我。另外三月份的面试文档已经整理好了,需要的可以在主页上加我