Spring和SpringMvc

spring和springMvc的区别

  • spring是IOC和AOP的容器框架,SpringMvc是基于Spring功能之上添加的web框架,想用springmvc必须依赖spring.

  • spring可以说是一个管理bean的容器,也可以说是包括许多开源项目的总称,springmvc是其中一个开源项目。

  • springmvc是一个mvc模式的web开发框架,Spring最大的用处就是通过IOC和AOP解耦,降低软件复杂性,所以Spring可以和springmvc可以解决很多方案,不仅仅是基于web的开发。
    spring框架的介绍
    Spring的特点:

  • 非侵入式的设计

  • IOC反转控制

  • AOP面向切面编程

  • 一站式:提供了表现层(Springmvc)业务层(spring)再到数据层的一套解决方案,
    Spring的两大核心给我们的程序解耦和代码的简介提供了支持。
    springmvc
    特点:

  • 灵活的配置功能

  • 国际化支持

  • 面向接口编程

  • 清晰的角色划分

  • springmvc给Spring的表现层提供支持
    Spring的工作流层和原理

  • 用户发送请求到前端的控制器DispathcherServlet

  • DispathcherServlet收到请求之后调用HandlerMapping处理器映射器

  • 处理器映射器根据请求的url找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispathcherServlet

  • DispathcherServlet通过HandlerAdapter处理器适配器调用处理器,执行处理器(controller 也叫后端控制器)

  • Controller执行完成返回ModelAndView,并返回给HandlerAdapter,HandlerAdapter将结果返回给DispathcherServlet

  • DispathcherServlet将ModelAndView,并返回给ViewReslover视图解析器,ViewReslover解析后返回具体的View进行给DispathcherServlet

  • DispathcherServlet对View进行熏染视图后返回给客户。
    AOP与IOC
    AOP与IOC给spring的业务层提供支持,使程序的耦合度更低,代码更简介
    AOP原理:既面向切面编程,就是提取公共部分,集中解决一些公共问题
    IOC原理:控制反转。在传统过程中,当某一个对象依赖于另外一个对象时,会由该对象去创建另外一个对象,有了ioc后,将创建过程交给IOC,由spring创建bean,从而只需给该对象注入即可

  • 什么是DI机制?
    依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者因此也称为依赖注入。
    spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。
    什么是AOP?
    面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面
    1.面向切面编程提供声明式事务管理
    2.spring支持用户自定义的切面
    面向切面编程(aop)是对面向对象编程(oop)的补充,
    面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。
    AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,
    是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。
    aop框架具有的两个特征:
    1.各个步骤之间的良好隔离性
    2.源代码无关性
    Spring的事务管理机制实现的原理,就是通过这样一个动态代理对所有需要事务管理的Bean进行加载,并根据配置在invoke方法中对当前调用的 方法名进行判定,并在method.invoke方法前后为其加上合适的事务管理代码,这样就实现了Spring式的事务管理。Spring中的AOP实 现更为复杂和灵活,不过基本原理是一致的。
    spring的常用注解

  • 声明bean的注解
    @Component 代表任何组件
    @Service 在业务逻辑层使用(service)
    @Repository 数据访问层使用(dao)
    @Controller 控制器的声明

  • 注入bean的注解
    @Autowired
    @ Resource
    @Inject

  • 切面AOP的注解
    @aspect 声明一个切面(类上)
    @After
    @ Before
    @ Around
    @pointCut

  • bean的属性支持
    @Scope

  • @value
    springmmvc的注解
    @requestmapping
    @ResponseBody
    @PathVariable
    @ModelAttibute
    @requestBody

mybatis的优缺点:优点:1.易于上手和掌握。2.sql写在xml里,便于统一管理和优化。3.解除sql与程序代码的耦合。4.提供映射标签,支持对象与数据库的orm字段关系映射5.提供对象关系映射标签,支持对象关系组建维护6.提供xml标签,支持编写

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
 
  SpringMVC的优点:
  与Spring框架天生整合,无框架兼容问题
  与Struts2相比安全性高
  配置量小、开发效率高
  MyBatis的优点:
  不需要重新学习hibernate框架,在掌握sql的基础上就可以上手;
  不需要配置实体类与数据表之间的映射关系;
  springMVC是一种轻量级的MVC框架,它 的性能较于优越;它又支持IOC,AOP,同时支持持久层框架, 非常方便开发者使用;使用mybatis 原因之一是开发者可以手动优化sql,mybatis适合处理大数据和复杂sql,灵活性更强;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值