• springMVC框架(二)---springMVC框架高级开发


      首先在了解这个问题的时候我们需要明白什么是MVC,在前一篇提及的各种组件以及响应是如何的?

    1.什么是springMVC?

    springMVC全名Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。有的朋友是直接上手学的框架可能并没有感受到框架真正的好处,这里我打一个比方:一个工厂在加工一样东西的时候,需要进行材料采购、打磨、精加工。这里有三个工人,一个负责采购、打磨,一个又负责打磨、精加工,最后一个又负责采购、精加工。这里我们就会发现问题了,当我们最后产品出来的时候出问题了,那我们找谁,是那一块的问题呢?如果这三个人分别负责采购、打磨、精加工,我们会发现我们就会发现问题就很好发现了,这个分工的过程我们也可以看做解耦的过程。springMVC就相当于我们的解耦工具web层进行职责解耦,简化我们的开发。

    Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。约定大于配置这句话很关键一定要记清楚。

    2.springMVC能够为我们的开发带来怎样的好处?

    √让我们能非常简单的设计出干净的Web层和薄薄的Web层;

    √天生与Spring框架集成(如IOC容器、AOP等);--->IOC(iInversion of Control):控制反转;AOP(Aspect Oriented Programming)切面编程

    √提供强大的约定大于配置的契约式编程支持;

    √能简单的进行Web层的单元测试;

    √支持灵活的URL到页面控制器的映射;

    √非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);

    √非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;

    √提供一套强大的JSP标签库,简化JSP开发;

    √支持灵活的本地化、主题等解析;

    √更加简单的异常处理;

    √对静态资源的支持;

    √支持Restful风格。

    3.springMVC的架构(在前一篇博客有一个简略的图)

    可以结合前一篇博客的图好好的揣摩一下springMVC在MVC设计模式中的作用。如果有朋友不明白可以和我联系。

    4.关联jar包部分

    我想有朋友会问jar包部分的问题,我就把jar包给贴出来,好像myeclipse中自带,或者用Maven的同学可以直接写到配置文件里去拿包。这里要说的是这些spring的包均需要是3.10以后的版本否则没办法支持springMVC。

    spring-context-3.1.0.RELEASE.jar
    spring-aop-3.1.0.RELEASE.jar
    aopalliance-1.0.jar
    spring-beans-3.1.0.RELEASE.jar
    pring-core-3.1.0.RELEASE.jar
    spring-expression-3.1.0.RELEASE.jar
    spring-asm-3.1.0.RELEASE.jar
    spring-webmvc-3.1.0.RELEASE.jar
    spring-context-support-3.1.0.RELEASE.jar
    spring-web-3.1.0.RELEASE.jar
    aspectjrt-1.6.9.jar
    slf4j-api-1.5.10.jar
    jcl-over-slf4j-1.5.10.jar
    slf4j-log4j12-1.5.10.jar
    log4j-1.2.15.jar
    javax.inject-1.jar
    servlet-api-2.5.jar
    jsp-api-2.1.jar
    jstl-1.2.jar
    junit-4.7.jar
  • 相关阅读:
    30个实例详解TOP命令
    CentOS6 启动流程图文解剖
    Linux常用性能检测命令解释
    Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity) 转
    linux系统中如何查看日志 (常用命令2)
    Linux下常用的shell命令记录1
    python import as from
    内存的大小端模式
    opencv笔记1
    代码不仅仅考虑性能
  • 原文地址:https://www.cnblogs.com/JCYH/p/4779486.html
Copyright © 2020-2023  润新知