对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