2

首先,我是 grails 以及网站开发的新手。我开始了 grails 项目和学习。我很清楚像这样的域类、控制器、视图、敏捷开发等 grails 概念。

执行grails run-app命令时,grails 何时开始在框架中执行并运行(类似于main()Java 中的方法)?

哪个是我的项目中来自 grails 框架的第一个入口域或控制器或视图或 main.gsp?

4

3 回答 3

2
  1. 当服务器启动时,Bootstrap.groovy执行。
  2. 要收听每个请求,您可能需要定义自己的过滤器
  3. 然而,每个请求的最开始都是org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.
于 2012-09-21T19:55:35.250 回答
1

当请求进入时,grails 确定控制器和操作(基于 URL 和您指定的任何 UrlMappings)并调用它。因此,从您的应用程序代码的角度来看,起点是您的操作之一。

例如:

如果用户请求http://abc.com/book/list,其中 abc.com 是您的站点,则您的方法def list()BookController.groovy起点。

在内部,grails 在调用控制器的操作之前调用每个闭包AppFilters.groovy(以及由您或您正在使用的插件定义的其他过滤器)(如果有)。如果您正在开发一个非常简单的应用程序,那么这些都无关紧要。

于 2012-09-22T08:16:54.953 回答
0

Grails 包含强大的构建系统 Gant,它是一个围绕 Apache Ant 的 Groovy 包装器。

当您运行命令时:Grails [commad-name],

Grails 在以下目录中搜索要执行的 Gant 脚本:

USER_HOME/.grails/scripts
PROJECT_HOME/src/main/scripts/
PROJECT_HOME/plugins/*/scripts
GRAILS_HOME/scripts

当您执行Grails run-app命令时,它将从上述路径执行文件 RunApp.groovy 文件。这些是 groovy 文件,一旦你查看文件,你就会明白其中的代码。

于 2019-06-09T14:44:37.853 回答