我从插件中获得Grails Services的想法可以注入到使用该插件的应用程序中。但是,如果不希望某些服务是可注入的,那么你只希望插件知道它们。
无论如何要实现这个目标吗?
答案 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可以通过应用程序上下文获得,因此可以使用包含该应用程序的应用程序。真的没有办法保护'使用这些服务。