是否可以限制动态查找器?

时间:2014-05-08 05:45:56

标签: grails dynamic-finders

想象一下,您有一个具有出色服务层的Grails项目,并且您希望确保您的团队仅通过您的服务访问该模型。

是否可以轻松限制动态查找程序,以便仍然可以在服务中使用它们(相同的程序包)但不在外部使用?

我可以想象要覆盖它们,但随后它们也不再服务......

2 个答案:

答案 0 :(得分:1)

没有一种简单的方法可以限制方法调用的位置。您可以编写全局AST转换,查找动态查找程序调用,并禁止所有不是来自服务的查询。如果你精通编写AST变换,这些变换不会过于复杂,但它并非无足轻重。如果你不精通编写AST变换,那么我不建议把它作为你在那个空间的第一次冒险。说实话,我不推荐它,但它是你的问题的答案。它可以做到,但我不会说有一个简单的方法。

答案 1 :(得分:1)

CodeNarc有一个grails插件,可以进行静态分析,如果开发人员违反了规则,可能会失败。

有几个内置Grails Rules,但他们没有做你想做的事。您需要创建自定义规则。请参阅此screencast

最接近的可能是 GrailsDomainWithServiceReference 它会检查Grails Domain类是否没有注入Service类。

相关问题