Grails项目结构概述
我试图尽可能完整地找到关于Grails项目结构的概述。如我所见,并非所有项目都使用“GrailsCreateApp”生成的默认结构Grails项目结构概述,grails,Grails,我试图尽可能完整地找到关于Grails项目结构的概述。如我所见,并非所有项目都使用“GrailsCreateApp”生成的默认结构 Grails是否还有其他默认文件夹?(例如,我看到grails app/jobs)大多数应用程序都遵循目录结构,因为工件主要由它们的根文件夹定义。控制器类名称以“Controller”结尾,标记库和服务具有类似的命名约定,但域类没有任何名称限制。因此,正是grails app/domain下的位置将groovy类定义为域类 Grails允许应用程序和插件定义额外的工
Grails是否还有其他默认文件夹?(例如,我看到grails app/jobs)大多数应用程序都遵循目录结构,因为工件主要由它们的根文件夹定义。控制器类名称以“Controller”结尾,标记库和服务具有类似的命名约定,但域类没有任何名称限制。因此,正是grails app/domain下的位置将groovy类定义为域类 Grails允许应用程序和插件定义额外的工件类型,这就是您在“jobs”文件夹中看到的。这是由石英插件创建的。我在DynamicControllers插件中做了类似的事情,我在grails应用程序下添加了一个新的controllerMixins文件夹,其中保存着控制器mixin类
创建一个新的工件而不是将代码保存在src/groovy下的好处是,在开发模式下支持重新加载非常简单,并且它可以对代码进行逻辑分组,而不是将所有内容都转储到一个文件夹(src/groovy)中,并依靠包来将内容分开。您还可以快速访问任何类型的所有工件
application.getDomainClasses()
返回所有域类,但该方法是动态解析的,因此如果安装了Quartz,则会自动获得对application.getJobClasses()的支持
无需注册或配置标准工件注册以外的任何内容。如果安装scaffolding插件,则会有src/模板。grails app/jobs用于Quartz作业(提供类似cron的功能)。关于插件文件夹有什么规则吗?
%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