Grails 将服务封装在插件中
我从Grails服务中得到了这样的想法:可以将插件注入到使用该插件的应用程序中。但是,如果您不希望某些服务是可注入的,那么您只希望插件了解它们Grails 将服务封装在插件中,grails,grails-plugin,Grails,Grails Plugin,我从Grails服务中得到了这样的想法:可以将插件注入到使用该插件的应用程序中。但是,如果您不希望某些服务是可注入的,那么您只希望插件了解它们 还有其他方法可以实现吗?您可以使用*GrailsPlugin.groovy脚本中的pluginExcludes属性来实现: def pluginExcludes = [ "grails-app/services/com/my/package/MyService.groovy", ] 这样,服务就不会包含在打包
还有其他方法可以实现吗?您可以使用*GrailsPlugin.groovy脚本中的pluginExcludes属性来实现:
def pluginExcludes = [
"grails-app/services/com/my/package/MyService.groovy",
]
这样,服务就不会包含在打包的plugin*.zip文件中
一个缺点是这种方法不适用于就地插件-请参阅
就地插件是使用指定路径从文件系统加载的插件:
grails.plugin.location.shiro = "/home/dilbert/dev/plugins/grails-shiro"
所有Grails服务都以springbean的形式公开。这些bean可以通过应用程序上下文获得,因此也可以通过使用插件的包含应用程序获得。真的没有办法“保护”这些服务不被使用。你说的“你只想让插件知道它们”是什么意思?你能澄清一下吗?这难道不会把它完全排除在插件之外吗?这意味着插件本身也无法使用它?