在插件中封装服务

时间:2014-03-19 11:05:44

标签: grails grails-plugin

我从插件中获得Grails Services的想法可以注入到使用该插件的应用程序中。但是,如果不希望某些服务是可注入的,那么你只希望插件知道它们。

无论如何要实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

您可以使用* GrailsPlugin.groovy脚本中的pluginExcludes属性来实现它:

  def pluginExcludes = [
      "grails-app/services/com/my/package/MyService.groovy",           
  ] 

这样服务就不会包含在打包的插件* .zip文件中。

一个缺点是这种方法不适用于就地插件 - 请参阅http://jira.grails.org/browse/GRAILS-5404

就地插件是使用指定路径从文件系统加载的插件:

grails.plugin.location.shiro = "/home/dilbert/dev/plugins/grails-shiro"

答案 1 :(得分:0)

所有Grails服务都以Spring bean的形式公开。这些bean可以通过应用程序上下文获得,因此可以使用包含该应用程序的应用程序。真的没有办法保护'使用这些服务。