应对题目网站收藏Interview

面试官:"说说你对Spring的理解"

2018-11-11  本文已影响292人  头脑之外

Spring是一个十分庞大的体系,具体可以访问它的官网https://spring.io/projects进行详细了解。
首先,回答这个问题,可以先介绍一下Spring体系中的几个项目:

Data Access/Integration模块:数据访问/集成
Web模块:提供了基本的Web开发的集成特性
AOP模块:提供了面向方面的编程实现,允许您定义多方拦截器和切入点,以干净解耦,实现的功能,应该分开的代码。
Aspects模块:提供与AspectJ的集成这又是一个功能强大且成熟的面向方面编程(AOP)框架
instrumentation模块:提供了一定的应用服务器中使用类工具的支持和类加载器实现
messaging模块:消息通知
Core Container模块:核心容器
Test模块:测试模块支持Spring组件使用JUnit或TestNG框架的测试

然后,我们在接受一下Spirng的核心概念:

①Bean管理

与传统的应用程序不同,在Spring中将对象的创建交给Spring容器来管理,也就是说只有放入Spring容器中的类,Spring才能对其产生作用。那么Spring究竟是怎样获取类的对象的呢?
要想知道这个,我们首先要弄清楚这几点:
BeanFactory是Spring容器的根接口,ApplicationContext是它的子接口,通常用它的子接口ApplicationContext来访问Spring容器。

ApplicationContext子接口常用的有四个实现类:
  • ClassPathXmlApplicationContext 从 classpath 加载 spring 的配置文件
  • FileSystemApplicationContext 从系统文件加载 spring 的配置文件
  • AnnotationConfigApplicationContext 获取基于注解的 spring 容器对象
  • XmlWebApplicationContext 在 web 环境中获取 spring 容器对象
    Spring通过BeanFactory来获取这些类的对象,在配置文件中通过<bean/>节点将类交给Spring行管理,ApplicationContext的实现类通过getBean()方法从Spring容器中获取对象,认为单例的。
②依赖注入

它可以降低类之间的耦合性,有两种注入方式:

在传统程序中,当某个角色需要另外一个角色协助时,由调用者来创建被调用者的实例。而在Spring中,创建被调用者的的工作不再由调用者来完成,而由第三方Spring容器来完成,所以称为控制反转,Spring容器创建被调用者的实例,然后注入调用者,所以又称为依赖注入。`

③面向切面编程

AOP在Spring中主要表现在两个方面:

推荐文章:https://www.2cto.com/kf/201406/305929.html

上一篇下一篇

猜你喜欢

热点阅读