Sping MVC是在Spring框架上发展起来的框架,它提供了构建Web应用程序的全功能MVC模块,使用了Spring可插入的MVC架构,可以自由的选择各个模块所使用的架构,非常灵活。Spring MVC把控制器、模型、分派器以及处理程序对象的角色进行了分离,因此,Spring MVC具有更好的可定制性。

IoC,即控制反转,是一种降低对象之间耦合关系的设计思想。IoC将组件间的依赖关系从程序内部提到外部来管理(即IoC容器管理),通过使用IoC,对象不会被显示的调用,而是根据需求通过IoC容器来提供。IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象,这一点使用过依赖注入实现的。对于Spring框架而言,就是由Spring容器来控制对象的生命周期和对象间的依赖关系,所有对象的创建、销毁都是由Spring来控制,故控制对象生存周期的不再是依赖它的对象,而是Spring容器。对于某个具体对象而言,以前是它控制其他对象,现在则是所有对象由Spring容器控制。Spring容器会根据配置文件来创建调用者对象,同时把被调用者的对象的实例化对象通过构造函数或者set()方法的形式注入到调用者对象中。

IoC的优点:

① 通过IoC容器,开发人员不需要关注对象如何被创建的,同时增加新类也非常方便,只需要修改配置文件即可实现对象的“热插拔”

② IoC容器可以通过配置文件来确定需要注入的实例化对象,非常便于进行单元测试

IoC的缺点

① 创建对象的流程变得比较复杂

② 对象是通过反射机制实例化得到的,因此会对系统的性能有一定影响

AOP即面向切面编程是对面向对象编程的一种补充,其允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求。AOP利用一种称为“横切”的技术,能够解剖开封装的对象内部,并将那些影响了多个类并且与具体业务无关的公共行为封装成一个独立的模块,称为切面。AOP在Java中是通过反射机制实现的。AOP可以实现扩展功能的同时不修改原代码,将功能代码从逻辑代码中分离出来。

利用AOP实现的功能主要有日志记录、性能统计、安全控制、事务处理、异常处理等。

使用AOP的主要意图是将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中分离出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,当改变这些行为的时候不会影响业务逻辑的代码。

AOP的特点是利用横向抽提机制,取代传统的纵向继承体系重复性代码。

请简要介绍Sping MVC、IoC和AOP的更多相关文章

  1. 【Java】模拟Sping,实现其IOC和AOP核心(一)

    在这里我要实现的是Spring的IOC和AOP的核心,而且有关IOC的实现,注解+XML能混合使用! 参考资料: IOC:控制反转(Inversion of Control,缩写为IoC),是面向对象 ...

  2. Spring框架IOC和AOP介绍

    说明:本文部分内容参考其他优秀博客后结合自己实战例子改编如下 Spring框架是个轻量级的Java EE框架.所谓轻量级,是指不依赖于容器就能运行的.Struts.Hibernate也是轻量级的. 轻 ...

  3. Spring IOC、AOP、Transaction、MVC小结

    1.IOC.AOP:把对象交给Spring进行管理,通过面向切面编程来实现一些“模板式”的操作,使得程序员解放出来,可以更多的关注业务实现.                             - ...

  4. 【Java】模拟Sping,实现其IOC和AOP核心(二)

    接着上一篇,在上一篇完成了有关IOC的注解实现,这一篇用XML的方式实现IOC,并且完成AOP. 简易的IOC框图 注解的方式实现了左边的分支,那么就剩下右边的XML分支: XmlContext:这个 ...

  5. java简单例子介绍IOC和AOP

    IOC和AOP的一些基本概念 介绍 IOC 一.什么是IOC IoC就是Inversion of Control,控制反转.在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内 ...

  6. 封装:简要介绍自定义开发基于WPF的MVC框架

    原文:封装:简要介绍自定义开发基于WPF的MVC框架 一.目的:在使用Asp.net Core时,深感MVC框架作为页面跳转数据处理的方便,但WPF中似乎没有现成的MVC框架,由此自定义开发一套MVC ...

  7. Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理

    MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...

  8. 简要介绍 My.Ioc 的用法

    下面这段代码展示了 My.Ioc 的基本用法: using System; using System.Collections.Generic; namespace My.Ioc.Sample { pu ...

  9. Sping MVC不使用任何注解处理(jQuery)Ajax请求(基于XML配置)

    1. Spring Spring框架是一个轻量级的解决方案,是一个潜在的一站式商店,用于构建企业就绪的应用程序.Spring框架是一个Java平台,为开发Java应用程序提供全面的基础架构支持.Spr ...

随机推荐

  1. python遇到的文件错误

    学习了json.load,运行时出现了以下错误 load读取的是前面写入的文件,如果读取的文件为空,则会出现这个错误,如果不为空,则正确.所以一定要保证读取的文件不为空.

  2. SpringBoot 热启动

    在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-bo ...

  3. 微信小程序开发攻略

    首先,需要明确的一点是,小程序开发就是前端开发的一个小分支. 其次,小程序开发框架是一个精简版的React ,并且开发比较简单 . 第一步 获取AppId 小程序注册入口http://https:// ...

  4. 材料订单不在IN_MO或者IN_SCFHEADER中

    select * from in_sfcheader where MO_ID IN('001600044481'); SELECT * FROM in_sfcheader_temp where MO_ ...

  5. SQLMAP自动注入(一):sqlmap的简单使用和配合burpsuite使用

    python编写,开源 检测方式 基于布尔的盲注检测 基于时间的盲注检测 基于错误的检测 基于union的检测 基于堆叠的检测 优点 数据库直连 -d cookie过期后自动更新cookie信息 可以 ...

  6. 解题5(StringMerge1)

    题目描述 按照指定规则对输入的字符串进行处理. 详细描述: 将输入的两个字符串合并. 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序.这里的下标意思是字符在字符串 ...

  7. db2start提示SQL5043,关闭连接终端tty

    db2 V10.3启动的时候提示: 问题1: db2start执行后提示: SQL1072C  The database manager resources are in an inconsisten ...

  8. Django中反向生成models

    我们在展示django ORM反向生成之前,我们先说一下怎么样正向生成代码. 正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model. ...

  9. Ubuntu1.6安装Go【小白版】

    [安装golang,并配置环境变量]1.将go下载到Home目录并解压 一键解压会 自动会解压到 Home/go目录. 2.设置环境变量 nano是一种文本编辑器,也可以用其他的编辑器. 输入以下命令 ...

  10. 理解Linux中的shutdown、poweroff、halt和reboot命令

    原文  http://os.51cto.com/art/201706/541525.htm   在本篇中,我们会向你解释 shutdown.poweroff.halt 以及 reboot 命令.我们会 ...