我试图尽可能完整地找到有关Grails项目结构的概述.我看,并非所有项目都使用"grails create-app"生成的默认结构
%PROJECT_HOME%
+ grails-app
+ conf ---> location of configuration artifacts
+ hibernate ---> optional hibernate config
+ spring ---> optional spring config
+ controllers ---> location of controller artifacts
+ domain ---> location of domain classes
+ i18n ---> location of message bundles for i18n
+ services ---> location of services
+ taglib ---> location of tag libraries
+ util ---> location of special utility classes
+ views ---> location of views
+ layouts ---> location of layouts
+ lib
+ scripts ---> scripts
+ src
+ groovy ---> optional; location for Groovy source files
(of types other than those in grails-app/*)
+ java ---> optional; location for Java source files
+ test ---> generated test classes
+ web-app
+ WEB-INF
Run Code Online (Sandbox Code Playgroud)
Grails还有更多默认文件夹吗?(例如,我看到了grails-app/jobs)
大多数情况下,所有应用程序都遵循目录结构,因为工件主要由其根文件夹定义.控制器类名称以"Controller"结尾,而taglib和服务具有类似的命名约定,但域类没有任何名称限制.所以它是grails-app/domain下的位置,将groovy类定义为域类.
Grails允许应用程序和插件定义额外的工件类型,这就是您在'jobs'文件夹中看到的内容.这是由Quartz插件创建的.我在动态控制器插件中做了类似的事情,我在grails-app下添加了一个新的controllerMixins文件夹,其中保存了控制器mixin类.
创建新工件而不是将代码保存在src/groovy下的好处是,它很容易支持在开发模式下重新加载,并且它在逻辑上对代码进行分组,而不是将所有内容转储到一个文件夹(src/groovy)中,并依赖于包来保存分离.您还可以快速访问任何类型的所有工件.application.getDomainClasses()返回所有域类,但该方法是动态解析的,因此如果安装了Quartz,则application.getJobClasses()无需注册或配置标准工件注册之外的任何内容即可自动获得支持.
| 归档时间: |
|
| 查看次数: |
8649 次 |
| 最近记录: |