Grails - 命令对象的专用源文件夹?

标签 grails command-objects

据我所知,大多数人要么将命令对象放置在 Controller 内(我不喜欢),要么将它们放置在 src/groovy 文件夹内的某个位置。

然而,我喜欢 Grails 为 Controller 、域、服务等提供的特定文件夹,并且认为为命令对象简单地创建一个新的源文件夹会很棒。/grails-app/commands 或者/src/commands。以这种方式布局将有助于鼓励命令对象的使用。

我有点担心这样做可能会破坏一些依赖于特定项目结构约定的 grails 魔法。运行一些快速测试后,我确实验证了数据绑定(bind)和域约束导入似乎仍然可以正常运行。

对这种方法有什么想法或反对吗?

最佳答案

与域类、服务、标签库等顶级 Grails 工件不同,该框架不会对命令对象类执行任何特殊操作。一个异常(exception)是,如果它们是在使用该类作为命令对象的 Controller 的 Controller 源文件中定义的,在这种情况下,编译器将 Autowiring 可验证的内容,而无需使用 Validateable 注释来标记该类。如果您在其自己的源文件中定义命令对象类,那么如果您希望该事物可验证(并非所有命令对象都需要变得可验证),则您将需要 Validateable 注释。鉴于此,我认为有一个特殊的位置来定义这些类源文件没有任何好处。如果 Controller 源文件中没有定义它们,通常的做法是在 src/groovy/下定义它们,除非您有充分的理由偏离该约定,否则您可能不应该这样做。

命令对象类在 Grails 中几乎是一种特殊的东西,但实际上并非如此。您可以使用任何内容作为 Controller 操作的参数。如果有某种原因,您可以使用 Log4J 提供的类作为命令对象。在我看来,有一个特殊的地方来定义它们并不合理。

希望对您有所帮助。

关于Grails - 命令对象的专用源文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689425/

相关文章:

grails - NumberFormatException对于尝试在grails中进行日期搜索时的输入字符串

hibernate - 我在 grails 中遇到完整性违规异常。如何级联删除到grails中的相关实体?

grails - 结合@TestFor和@Integration注释grails 3

grails - Grails命令对象是否支持多个MultipartFile?

json - 在过滤器中访问 request.JSON 后 Grails 2.5.0 Controller 命令对象绑定(bind)

grails - 时髦的, chalice : high level questions on extraneous properties and command objects/data binding

用于动态脚手架的 Grails3 Controller 模板

grails - 我如何在 Grails 域类中添加整数列表

Grails 命令对象和分页

validation - Grails命令对象临时字段验证