首先,我是 grails 以及网站开发的新手。我开始了 grails 项目和学习。我很清楚像这样的域类、控制器、视图、敏捷开发等 grails 概念。
执行grails run-app
命令时,grails 何时开始在框架中执行并运行(类似于main()
Java 中的方法)?
哪个是我的项目中来自 grails 框架的第一个入口域或控制器或视图或 main.gsp?
首先,我是 grails 以及网站开发的新手。我开始了 grails 项目和学习。我很清楚像这样的域类、控制器、视图、敏捷开发等 grails 概念。
执行grails run-app
命令时,grails 何时开始在框架中执行并运行(类似于main()
Java 中的方法)?
哪个是我的项目中来自 grails 框架的第一个入口域或控制器或视图或 main.gsp?
Bootstrap.groovy
执行。org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet
.当请求进入时,grails 确定控制器和操作(基于 URL 和您指定的任何 UrlMappings)并调用它。因此,从您的应用程序代码的角度来看,起点是您的操作之一。
例如:
如果用户请求http://abc.com/book/list
,其中 abc.com 是您的站点,则您的方法def list()
是BookController.groovy
起点。
在内部,grails 在调用控制器的操作之前调用每个闭包AppFilters.groovy
(以及由您或您正在使用的插件定义的其他过滤器)(如果有)。如果您正在开发一个非常简单的应用程序,那么这些都无关紧要。
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 文件,一旦你查看文件,你就会明白其中的代码。