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

kja*_*son 2 grails command-objects

从我所看到的,大多数人将命令对象放在控制器内(我不是它的粉丝)或将它们放在src/groovy文件夹中的某个位置.

但是,我喜欢Grails如何为控制器,域,服务等提供特定文件夹,并且认为为命令对象创建新的源文件夹会很棒./ grails-app /命令或者/ src /命令.以这种方式布局将有助于鼓励使用命令对象.

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

对这种方法有任何想法或反对意见吗?

Jef*_*own 5

与顶级Grails工件(如域类,服务,taglib等)不同,框架对命令对象类没有任何特殊处理.例外情况是,如果它们是在控制器的控制器源文件中定义的,该控制器使用该类作为命令对象,在这种情况下,编译器将自动装配可验证的东西,而不必使用Validateable注释标记该类.如果要在其自己的源文件中定义命令对象类,那么如果您希望该事物可以进行验证,则需要Validateable注释(并非所有命令对象都需要进行验证).鉴于此,我认为有一个特殊的地方来定义这些类源文件没有任何好处.如果它们没有在控制器源文件中定义,那么正常的做法是在src/groovy /下定义它们,除非你有充分的理由偏离该约定,否则你可能不应该这样做.

命令对象类几乎是Grails中的特殊事物,但不是真的.您可以将任何内容用作控制器操作的参数.如果有某些原因,您可以使用Log4J提供的类作为命令对象.IMO,有一个特殊的地方来定义它们并不合理.

我希望有所帮助.