当应用程序控制器名称与插件控制器的名称冲突时,推荐的方法是什么?Grails如何解决控制器名称冲突?
我看到这些的Grails JIRAs: GRAILS-4240 GRAILS-1243
...和伯特·贝克威思的答复这两个线程意味着,唯一的办法就是因为黑客重命名其中一个控制器(大概应用控制器插件代码是不期望的)
How to use the package name to differentiate between classes in grails?
How to extend/override controller actions of plugins?
然而,伯特自己的春季安全的UI插件主张命名的应用程序控制器一样插件控制器的精确方法 - 看spring-security-ui docs。
这种做法实际上似乎在开发模式下工作(Grails的运行的应用程序),当应用程序被部署为WAR。那么这个功能可以依靠吗?如果是这样,控制器冲突解决规则是什么? Grails文档没有提及它。 Perhasps Burt可以分享他的见解吗?
拥有一个像Grails的一个“插件”的架构,甚至没有基本的命名空间设施,以处理这样看起来很破我的冲突......
谢谢伯特!我不确定我完全理解编译顺序如何发挥作用。由于我的FooController和插件的FooController位于不同的包中,因此它们都不会覆盖其他的.class文件。两个FooController.class文件都在WAR中。如此看来,Grails的有喜欢的应用程序,以插件的... – Eric 2011-03-09 13:12:01
右一些查找逻辑,他们编译成不同的文件夹,所以没有.class文件冲突。在启动时,找到工件的进程首先找到插件的工件,但是然后应用程序的工件替换它,因为它具有相同的“工件”名称。 – 2011-03-09 15:44:11