【问题标题】:Understanding the flow of spring framework & MVC了解spring框架和MVC的流程
【发布时间】:2014-07-15 15:47:25
【问题描述】:

我无法理解这一点。有人可以帮助我更好地理解这一点吗?

MVC 
Model --> Java- Spring Framework
View ---> templating language(JSP velocity) & Javascript 
DB --> SQL 

Q-1) 现在,当我打开一个特定页面时,我无法想象流程。我已经阅读了有关 DAO、控制器、服务等的内容,并且我分别理解它们,但是当我将所有内容组合在一起时,我真的很困惑,执行顺序是什么?具体流程是什么?是不是首先加载视图,然后发送 JS 请求以从后端获取必要的数据,然后调用控制器和服务,DAO 查询数据库?那么 API 是如何形成的呢? DAO 处理 API?

Q-2) 为什么我们需要 xyz.properties?我从我的页面中删除了一个模块。如果我从 scripts.properties 中删除特定的 js 文件(与该模块相关),那么理想情况下,js 不应该被执行吗?那为什么我会看到 api 调用来获取与该模块相关的数据?我没有看到该模块,但我确实看到了 api 调用。这是为什么?

【问题讨论】:

  • 不清楚你在寻找什么样的答案。如果您正在运行一个发出所有请求的客户端框架,那么请求来自浏览器,到达一个控制器,该控制器可能会到达数据库,并将结果呈现给请求者。

标签: java spring-mvc model-view-controller


【解决方案1】:

DB 不进入 MVC 模型。而且您忘记了分析中的一个主要元素:控制器。流程是这样的:

  • 客户端对 URL 执行请求
  • 应用程序服务器获取 URL 并将处理传递到 Web 应用程序。
  • 使用 Spring MVC 的 Web 应用程序将处理 URL 处理到 Controller:DispatchServlet,它是一个 Servlet。
  • DispatchServlet 将尝试处理 URL。如果有 URL 映射,那么它会将其传递给类(在 spring.xml 配置中映射或用 @Controller 注释装饰)。
  • 这个控制器(实际上是模型的一部分)将处理请求。它将调用services、daos等(Model)并返回必要的数据以完成对DispatchServlet的响应。
  • DispatchServlet 将完成请求处理,并最终生成结果,例如text/json 响应,否则将转发到 JSP 文件(视图)。

对于问题二,我从来没有使用过这样的 scripts.properties 文件,所以我不知道你在说什么。属性文件的用途是存储在应用程序重新部署之前不应更改的应用程序属性。它们有 3 个主要优点:

  1. 它们很容易被人类用户操纵。添加、编辑或删除值不是火箭科学。
  2. 由于它是纯文本,因此使用 SVN、Git 或其他您喜欢的版本控制系统更容易进行版本控制。
  3. 它提供了更快的访问速度,因为它通常与应用程序位于同一磁盘中,因此与数据库配置相比,访问其内容时没有太多时间损失。但由于它在磁盘中,它仍然对仅访问 RAM 有不利。

【讨论】:

  • 所以属性文件就像一个索引,但它并没有真正发挥作用对吧?
  • @user3841595 不,他们没有。您可以使用属性文件创建一个不带任何属性的完整应用程序,但我怀疑一个完全没有任何属性的真实世界的体面应用程序。
  • @user3841595 我不明白。请提供更多详细信息。如果您在谈论 Hibernate 或 Spring JDBC,请询问它。如果您有自己的基于普通 JDBC 的框架来访问您的数据库,请询问您的队友。如果您要询问连接到 MySQL、Postgres 或 Oracle 等数据库的特定 jar,请询问确切的库-数据库引擎组合。 API 是一个很笼统的名词。
  • 我的问题是,如果我们自己的基于普通 JDBC 的框架来访问我们的数据库,那么 DAO 通常会进行该处理吗?感谢您的回答顺便说一句
  • @user3841595 DAO 只是数据访问对象的首字母缩写。如果类有责任访问数据源,那么就是 DAO。就如此容易。对于您的具体问题,DAO 类应该使用您自己的框架来访问您的数据库。
【解决方案2】:

通俗的说,MVC是图文并茂的解释

    (inputing data)    (data related part)   (display rendering)
   -request mapping      -classes            -JSP (Script,CSS,HTML)
   -request param        -interface           -velocity  
     Controller ------------->Model--------------->View
                               ||
                               \/
            (data processing logic)    (access to Databse)
              -optimization                -JDBC
              -business logic              -SQL
                 Service--------------------->DAO  

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2011-10-27
    相关资源
    最近更新 更多