Grails应用程序文件夹组织最佳实践

时间:2015-10-23 20:26:46

标签: grails

我正在努力在Grails 2.3.8应用程序中组织域,控制器和视图。目前应用程序非常小,但它计划变得更大,我想组织文件夹结构和包命名约定更好。理想情况下,我希望有以下结构,但我相信有更好的方法。我很乐意欢迎你们的精彩解决方案。

项目

分类

控制器

管理员

ItemController (package = com.example.admin, namespace = admin)
CategoryController (package = com.example.admin, namespace = admin)

公共

ItemController (package = com.example.public, namespace = public)
CategoryController (package = com.example.admin, namespace = public)

控制器   管理员

ItemController (package = com.example.admin, namespace = admin)
CategoryController (package = com.example.admin, namespace = admin)

公共

ItemController (package = com.example.public, namespace = public)
CategoryController (package = com.example.admin, namespace = public)

视图

管理员

index.gsp
create.gsp
etc

公共

index.gsp
create.gsp
etc

现在的问题是 这是正确的文件夹结构吗?这可能会造成任何陷阱 2.我如何在grails上完成此任务

2 个答案:

答案 0 :(得分:0)

Grails是一种基于配置框架的约定。 Grails项目都遵循预定义的文件夹排列,文档中对此进行了详细描述:

http://grails.github.io/grails-doc/latest/guide/single.html#conventionOverConfiguration

答案 1 :(得分:0)

创建Grails应用程序时,它会设置默认的Groovy / Java包。创建Grails工件(域,控制器等)时,默认使用此默认包(可以更改)。我已经玩弄了为这些人工制品创建子包的想法,但现在我根本就不这样做。这就是原因。

Grails为你做了很多事情。这太棒了,因为它消除了大量样板代码并节省了时间。而且你越遵守惯例,Grails就能为你做更多的事情。这适用于包装。如果将假象保留在默认包中,则会减少导入语句的数量。这不仅适用于创建人工制品,也适用于创建单元测试时(它们使用相同的默认包)。

您对将多个类放入同一个包中的担忧是有效的。而且,由于您希望您的应用程序的大小增加,这很可能。 Grails解决方案是插件。您可以将应用程序模块化为插件,然后使用主应用程序将所有内容整合在一起。每个插件都有不同的包命名空间。

如果您希望您的应用及其插件位于相同的代码库中,您可以在项目中创建插件目录(作为grails-app的兄弟目录)。然后,在 plugins 目录中创建Grails插件。最后,请参阅 grails-app / conf / BuildConfig.groovy 中的每个插件。

grails.plugin.location.'plugin-a' = './plugins/plugin-a'
grails.plugin.location.'plugin-b' = './plugins/plugin-b'