面试官:"说说你对Spring的理解"
Spring是一个十分庞大的体系,具体可以访问它的官网 https://spring.io/projects 进行详细了解。
首先, 回答这个问题,可以先介绍一下Spring体系中的几个项目:
然后, 我们在接受一下Spirng的核心概念:
它可以降低类之间的耦合性,有两种注入方式:
在传统程序中,当某个角色需要另外一个角色协助时,由调用者来创建被调用者的实例。而在Spring中,创建被调用者的的工作不再由调用者来完成,而由第三方Spring容器来完成,所以称为控制反转,Spring容器创建被调用者的实例,然后注入调用者,所以又称为依赖注入。`
AOP在Spring中主要表现在两个方面:
推荐文章: https://www.2cto.com/kf/201406/305929.html
大家在面试中可能会经常遇到面试官问spring的问题,
其实只要是涉及到Java开发的岗位,Spring 是必问的,主要还是源于它的一些优点,如下:
Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是DI和AOP。
为了降低Java开发的复杂性,Spring采取了以下4种关键策略
基于POJO的轻量级和最小侵入性编程;
通过依赖注入和面向接口实现松耦合;
基于切面和惯例进行;
通过切面和模板减少样板式代码。
方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。
降低JavaEE API的使用难度
Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
举例来说,在哈尔滨一家叫环宇互娱科技的面试时候,我针对spring的优点是这么跟面试官说的:
可以这么说,现在的JavaWeb开发者,称为Spring开发更适合,基本90%从事Java开发的都离不开Spring这一套。打不过就加入,往精通里学它~~