Spring部分面试知识

对Spring的理解

spring是一个轻量级的开源框架,贯穿持久层、业务逻辑层、控制层。让每一个功能模块都可以独立的分开,降低耦合度,提高代码复用度。spring通过控制反转降低耦合性,一个对象的依赖通过被动的注入而非主动的new。spring还包括面向切面、MVC整合等等。以上是我对spring的浅显认识。

Spring IOC的理解

控制反转,指由Spring来控制对象的生命周期和对象间的关系。以前对象的创建时机是由自己把握的,开发人员主动创建对象,现在由IOC容器创建,然后注入。所有的类都会在IOC容器中注册,告诉spring你是什么,你需要什么,spring容器在合适的时机将你所需要的东西给你,控制对象生命周期的不再是引用它的对象而是spring容器。

spring先加载xml文件,Bean先在spring容器中注册,然后会进行初始化Bean,再将Bean存到容器的缓存区(Map),谁需要就给它注入,而且缓存区的对象还在,一直在,这属于单例,直到关闭spring。(scope见下面)

DI:依赖注入,动态的向某个对象注入它所需要的对象。

SpringAOP

http://www.cnblogs.com/xiaolovewei/p/7919763.html

Spring事务

http://www.cnblogs.com/xiaolovewei/p/9418874.html

Spring 中的scope  ,也就是Bean的作用域

scope有Singleton、Prototype、request、session、global session。其中主要的是singleton和prototype。

singleton指的是IOC容器中只存在一个实例,所有对该对象的引用都要共享该实例。该对象自从第一次被创建以后,直到容器退出才会被销毁。就像上面说的,容器中有一个缓存区(MAP)保管这个单例。

prototype:IOC容器接收到对该对象的请求时,就会新建一个对象实例给对方。返回给对方以后,IOC容器就不在持有该对象的引用,也就是IOC只负责创建该对象实例,置于销毁,就不管了

request:XmlWebApplicationContext会为每个HTTP请求创建一个对象,当请求结束,该对象也就被销毁。

session:会为每个session创建一个对象,存活时间为session

 SpringMVC理解

spring MVC 其实就是 spring 自己做了一套很合适的 controller层 框架。结合性更好。 这个东西的核心就是 Dispatcher(可以理解成一个servlet),根据配置映射的JSP文件路径进行跳转。controller层也可以使用annotation(注解)的方式来描述。MVC的中的C。

 SpringMVC流程(原理)

1 用户发送请求至前端控制器DispatcherServlet;

2 前端控制器调用处理器映射器HandlerMapping,处理器映射器根据URL找到具体的处理器(Handler,也就是Controller),并返回给前端控制器。

3 前端控制器通过处理器适配器HandlerAdapter调用处理器。

4  执行处理器(Controller),执行完后返回给前端控制器一个ModelAndView

5 前端控制器调用视图解析器ViewResolver解析视图,并返回View给前端控制器。

6 前端控制器渲染并显示视图。

 SpringMVC优点

scope有Singleton、Prototype、request、session、global session。其中主要的是singleton和prototype。

singleton指的是IOC容器中只存在一个实例,所有对该对象的引用都要共享该实例。该对象自从第一次被创建以后,直到容器退出才会被销毁。就像上面说的,容器中有一个缓存区(MAP)保管这个单例。

prototype:IOC容器接收到对该对象的请求时,就会新建一个对象实例给对方。返回给对方以后,IOC容器就不在持有该对象的引用,也就是IOC只负责创建该对象实例,置于销毁,就不管了

request:XmlWebApplicationContext会为每个HTTP请求创建一个对象,当请求结束,该对象也就被销毁。

session:会为每个session创建一个对象,存活时间为session

猜你喜欢

转载自www.cnblogs.com/xiaolovewei/p/9424609.html
今日推荐