了解弹簧框架的流动和MVC

时间:2014-07-15 15:47:25

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

我很难理解这一点。有人能帮助我更好地理解这个吗?

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电话。这是为什么?

2 个答案:

答案 0 :(得分:4)

DB不会进入MVC模型。而且您忘记了分析中的主要元素:控制器。流程如下:

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

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

  1. 他们可以很容易地被人类用户操纵。添加,编辑或删除值不是火箭科学。
  2. 由于它是纯文本,因此使用SVN,Git等版本控制系统或其他偏好设置版本更容易。
  3. 它提供了更快的访问,因为它通常与应用程序位于同一磁盘中,因此与数据库配置相比,访问其内容时没有太多时间损失。但由于它位于磁盘中,因此它仍然只能阻止RAM访问。

答案 1 :(得分:0)

在简单的外行人的术语中,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