spring 源码分析及知识点总结:https://www.jianshu.com/p/822b6803a6e1
1 Spring是什么?
是一个个轻量级的依赖注入和AOP容器框架
使用控制反转的方式,通过依赖注入来创建对象(将创建对象的方式反转了,由Spring创建对象,依赖注入到调用者程序中)
面向切面编程:将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑。
面向切面编程是面向对象编程的有力补充。面向对象编程是静态的抽象,AOP是动态的抽象,获得步骤之间的逻辑划分
Spring的容器,管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。
参考:Spring的优点和缺点
2 spring有什么优势?
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2.可以提供众多服务,事务管理,Web Service等。
3.AOP很好支持了面向切面编程。
4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
5.Spring DI机制降低了业务对象替换的复杂性。
6.Spring属于低侵入,代码污染极低。
7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部
Spring缺点:
1.jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
2.Spring不支持分布式,这也是EJB仍然在用的原因之一。
3 Spring MCV和Spring的区别?
Spring mvc类似于struts的一个MVC开框架,其实都是属于Spring,Spring mvc需要有spring的架包作为支撑才能跑起来。
SSM框架—Spring+SpringMVC+MyBatis
4 SpringMVC核心处理流程
SpringMVC核心处理流程1、DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器
2、HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)
3、HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据、逻辑视图名)
4、ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图
5、然后再将Model模型中的数据渲染到View上
这些过程都是以DispatcherServlet为中轴线进行的。
Boy-20180729
网友评论