Hello SpringMVC[1]

MVC简介

MVC:MVC(Model-View-Controller)设计模式的基本思想是数据、显示和处理相分离。
Model负责数据管理,View负责数据显示,Controller负责业务逻辑和响应策略。
三层架构(3-tier Architecuture)是将整个业务应用划分为:界面层、业务逻辑层、数据访问层。
在 J2EE 中,最典型的 MVC 就是 Jsp + Servlet + JavaBean 模式。
优点:分层,结构清晰,耦合性低,大型项目代码的复用性得到极大的提高,开发人员分工明确,提高了开发的效率,维护方便,降低了维护成本。
缺点:简单的小型项目,使用 MVC 设计反而会降低开发效率,层和层虽然相互分离,但是之间关联性太强,没有做到独立的重用。

Srping是什么

Spring是一个开源框架,为简化企业级应用开发而生。Spring的核心是控制反转(IoC)面向切面编程(AOP),简单来说,Spring是一个分层的JavaSE/EE一站式(Full-Stack)轻量级容器框架。

JavaSE和JavaEE是什么

JavaSE是java分类中的标准版,是刚接触java要学习的基础知识。

JavaEE是java分类中的企业版,是java中的高级,涉及到的知识广泛。

JavaME中M是Micro的缩写,用在嵌入式等电子设备中。

Spring的特点

Spring 的特征如下:

  • 轻量:从大小与处理开销两方面而言, Spring 都是轻量的;此外, Spring 是非侵入性的( Spring 应用中的对象不依赖于 Spring 的特定类)。
  • 容器: Spring 包含并管理应用对象的配置和生命周期。
  • 框架: Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个 XML 文件里。
  • 一站式:在 IoC 和 AOP 的基础上, Spring 可以整合各种企业应用的开源框架和优秀的第三方类库,但不仅仅限于整合,Spring 框架本身就是一个企业解决方案级别的框架(实际上 Spring 自身也提供了表示层的 Spring MVC 和持久层的Spring JDBC )。
  • 控制反转( Inversion of Control,缩写为 IoC ): Spring 通过控制反转的技术促进了低耦合。当应用了 IoC ,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象,也可以说,依赖被注入到对象中(依赖注入, Dependency Injection ,缩写为 DI )。
  • 面向切面( Aspect-Oriented Programming,缩写为 AOP ): Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

耦合度:各模块间相互联系程度的一种度量,耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强;反之则越弱。

Spring的组成模块

在这里插入图片描述

  • Spring Core:Spring Core 提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory ,它是工厂模式的实现。 BeanFactory 使用控制反转( IoC )模式将应用程序的配置依赖性规范实际的应用程序代码分开。
  • Spring Context:Spring Context是一个配置文件,向Spring框架提供上下文信息。Spring Context包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。
  • Spring AOP:通过配置管理特性, Spring AOP 模块直接将面向切面的编程功能集成到了 Spring 框架中,可以很容易地使 Spring 框架管理的任何对象支持 AOP 。 Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务,通过使用 Spring AOP ,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
  • Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDB C的异常遵从通用的 DAO 异常层次结构。
  • Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO 、 Hibernate 和 iBatis ,所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
  • Spring Web:Spring Web 模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。Spring 框架支持与 Struts 的集成,Spring Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
  • Spring Web MVC:Spring Web MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,Spring MVC 框架变成为高度可配置的, MVC 容纳了大量视图技术,其中包括 JSP 、 Velocity 、 Tiles 、 iText 和 POI ;模型由 JavaBean 构成,存放于 Map ;视图是一个接口,负责显示模型;控制器表示逻辑代码,是 Controller 的实现。 Spring MVC 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。 Spring MVC 框架的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象,毫无疑问,这样的对象可以在不同 J2EE 环境( Web 或 EJB )、独立应用程序、测试环境之间重用。

IoC & DI(参考如链接)

理解参考跟我学Spring3

控制反转(Inversion of Control)不是技术,而是一种设计思想,IoC意味着你将设计好的对象交给容器控制,而不是传统的在对象内部之间控制。

  • 在传统的JavaSE程序设计中,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是专门一个容器来创建这些对象,即由IoC容器来控制对象的创建;

IoC容器控制了对象,主要控制了外部资源获取(不只是包括对象比如文件等)

  • 何为反转? 有反即有正,传统应用程序是由我门自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转是容器来帮忙创建、查找及注入依赖对象,对象只是被动的接受依赖对象。

依赖对象的获取被反转了

**依赖注入(Dependency Injection)**是组件之间依赖关系由容器在运行期决定,即由容器动态的将某个依赖关系注入到组件之中。DI并非为了软件系统带来更多的功能,而是为了提升组建重用的频率。

  • 谁依赖谁? 应用程序依赖IoC容器。
  • 为什么需要依赖? 应用程序需要IoC容器来提供给对象需要的外部资源。
  • 谁注入谁? IoC容器注入应用程序某个对象,应用程序依赖的对象。
  • 注入了什么? 注入某个对象依赖的外部资源。

相对IoC而言,依赖注入明确描述了被注入对象依赖IoC容器配置依赖对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值