zoukankan      html  css  js  c++  java
  • Spring MVC原理简要概括

    本篇简要讲解SpringMVC 的运作方式

    Spring 的 web 框架是一个设计良好的 web MVC 框架。MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。使用spring框架,可以减少重复造轮子,提高对象的利用效率。

    • 模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
    • 视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
    • 控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。

    spring是运行机制是如何构建的呢?在spring web 的jar包(org.springframework.web.servlet)中,可以找到DispatcherServlet 类。xml配置文件的读取、解析,对象的创建、容器的生产、依赖注入、http请求处理等都需要通过这个类来完成。

    浏览DispatcherServlet 类可以发现初始化方法initStrategies里面依次调用了以下方法:

    /**
         * Initialize the strategy objects that this servlet uses.
         * <p>May be overridden in subclasses in order to initialize further strategy objects.
         */
        protected void initStrategies(ApplicationContext context) {
            initMultipartResolver(context);
            initLocaleResolver(context);
            initThemeResolver(context);
            initHandlerMappings(context);
            initHandlerAdapters(context);
            initHandlerExceptionResolvers(context);
            initRequestToViewNameTranslator(context);
            initViewResolvers(context);
            initFlashMapManager(context);
        }

    步骤可以简要理解为:

    1、init方法先读取xml配置信息,进行解析
    2、找到class文件路径,读取class文件
    3、通过反射技术创建对象
    4、将创建的对象保存到Ioc容器中(用Map存储)
    5、依赖注入(其实就是赋值,反射和动态代理技术是框架牛逼的地方)(@Resource)
    怎么注入,如同婚介,首先收集双方的信息,然后根据需求进行匹配。这里匹配的就是容器里的对象和所需要的对象。
    IOC spring遍历,解析每一个对象的依赖关系。
    --------------------------------------------------------
    注解方式调用的是jdk自带的注解方法
    --------------------------------------------------------
    6、JAVA请求如何处理
    通过@RequestMapping注解,在DispatcherServlet 的initHandlerMappings(context);方法里面处理。去扫描Controller里面的@RequestMapping注解。
    在doDispatcher收到来自网页的请求时,到存储注解URL的map里面去搜,如果没有,则返回404,有则进入到相应的controller里面去处理调用相应的service。

  • 相关阅读:
    SQL第一讲
    CSS3补充内容
    EXCEL数据导入SQL表的方法
    jq第四讲+实例
    jq第三讲
    jq第二讲
    安卓、苹果日历同步
    安卓、苹果手机备忘录同步
    服务器、客户端双认证
    今天我的博客正式开张了!
  • 原文地址:https://www.cnblogs.com/schoolbag/p/11264006.html
Copyright © 2011-2022 走看看