Spring 与 SpringMVC (或许不完整)
一、什么是Spring
Spring
是一个开源的控制反转和面向切面(AOP)的容器框架。它的主要目的是使现有技术更加易用,推荐编码最佳实现,从而简化企业的开发。
提:使用Spring的好处有以下几项:
1.
降低组件之间的耦合度,实现软件各层之间的解耦合
2.
Spring 对于主流的应用框架提供了集成支持
3.
Spring容器提供了众多辅助类,使用这些类能够加快应用程序的开发
4.
Spring容器提供了 AOP 技术,使用它很容易实现如权限拦截等功能
5.
Spring可以使用容器提供的众多服务,如事务管理服务等
6.
Spring容器提供了对单例模式支持,不需要开发者自己写代码实现
提:Spring
包含模块的七大模块有:
1.
核心容器模块、Spring 上下文模块、Spring AOP模块、Spring ORM模块、Spring DAO模块、Spring Web模块、Spring MVC模块
提:什么是依赖注入、控制反转、依赖
1.
依赖注入:依赖注入是指在运行期,由外部容器动态地将依赖对象注入到组件中。依赖注入让 Bean 与 Bean 之间以配置文件组织在一起,而不是以硬编码的方式耦合在一起。
2.
控制反转:在传统的程序设计过程中,都是在应用内部创建及维护依赖的对象。控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到外部容器,控制权的转移就是控制反转。
3.
依赖:在两个元素中一个定义发生改变则另一个元素也会随着改变,则称这两个元素之间存在依赖关系。
提:Spring AOP的核心概念
1.
Aspect(切面):切面,是对交叉业务逻辑的统称。
2.
Joinpoint(连接点):连接点,指切面可以织入到目标对象的位置(方法,属性等)。
3.
Advice(通知):通知,指切面的具体实现。
4.
Pointcut(切入点):切入点,指通知应用到哪些类的哪些方法或属性之上的规则。
5.
Introduction(引入):引入,指动态地给一个对象增加方法或属性的一种特殊的通知。
6.
Weaving(织入):织入,指将通知插入到目标对象。
7.
Target(目标对象):目标对象,指需要织入切面的对象。
提:实际开发过程中开发者为什么要拆分Spring的配置文件
1. 当项目规模大的时候,配置文件可读性、可维护性差,庞大的 Spring 配置文件难以阅读。
2. 团队开发时,多人修改同一配置文件容易发生冲突,降低开发效率。
二、Spring MVC 工作机制
1. SpringMVC 请所有的请求都提交给DispatcherServlet(核心控制器),它会委托给应用系统
的其他模块负责对请求进行真正的处理工作。
2. DispatcherServlet 查询一个或多个
HandleMapping,找到处理请求的Controller。
3. DispatchServlet请求提交到目标 Controller。
4. Controller 进行业务逻辑处理后,会返回一个ModelAndView。
5. Dispatcher 查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。
6. 视图对象负责渲染返回给客户端。
上一篇: 设计模式漫谈之迭代器模式
下一篇: Google能成为下一个世界围棋冠军吗?
推荐阅读
-
Spring 与 SpringMVC (或许不完整)
-
SpringMVC+Spring+MyBatis 整合与图片上传简单示例
-
Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合
-
Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合
-
Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log
-
Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合
-
SpringMVC中与Spring相关的@注解
-
Spring 与 SpringMVC (或许不完整)
-
SpringMVC+Spring+MyBatis 整合与图片上传简单示例
-
SpringMVC中与Spring相关的@注解