繁体   English   中英

了解Spring框架和MVC的流程

[英]Understanding the flow of spring framework & MVC

我在理解这一点时遇到了麻烦。 有人可以帮助我更好地理解这一点吗?

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

Q-1)现在,当我打开特定页面时,无法看到流程。 我已经阅读了有关DAO,控制器,服务等的信息,并且对它们有各自的了解,但是当我把所有东西放在一起时,我真的很困惑,执行的顺序是什么? 到底是什么流量? 是不是先加载视图,然后发送JS请求以从后端获取必要的数据,然后调用控制器和服务,然后DAO查询数据库? 那么,API是如何体现出来的呢? DAO处理API?

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

数据库未进入MVC模型。 而且您忘记了分析中的主要要素: Controller 流程如下:

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

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

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

用简单的外行术语来说,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  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM