0

Grails 中的插件是模块化应用程序的好方法。文档建议覆盖应用程序中插件的工件,该插件使用此插件。

这真的是最好的方法吗?

我们通过例子来描述它:插件中定义了一个域类“org.User”。应用程序覆盖此域类。如果我使用“grails run-app”,则没有警告并且可以正常工作。但是 Eclipse (GGTS) 抱怨“类 org.User 的重复类定义无效”。对于某些开发人员来说,这并不重要,但我喜欢 IDE 帮助通过诸如“自动完成”之类的 stuf 进行编码。

最后,这两个类都被编译并放在 java 类加载器上。类的应用程序版本在插件版本之前加载。类解析器首先找到它,这就是它起作用的原因。如果我在这一点上错了,请纠正我。在一个类加载器中拥有一个类的两个版本真的是个好主意吗?

有哪些替代方案?

4

1 回答 1

1

您可以像Spring Security Core插件一样,将User类作为模板提供,因此使用此插件的应用程序可以选择创建自己的类或安装默认的用户类。

插件用户模板在这里,负责在应用程序中创建它的脚本在这里

您还需要一个配置值来了解要使用的类,并动态使用它。

PS:有像 Shiro 和 Spring Security 这样好的安全插件,也许检查它们而不是自己创建更容易。

于 2013-08-13T19:57:19.860 回答