在 grails progect 上,我想构建一个带有“hook”的二进制插件,可以在每个特定项目上实现
二进制插件结构
我的服务(服务) MyHookClassInterface myHookClass MyHookServiceInterface myHookService MyHookClassInterface(接口) MyHookServiceInterface(接口)
主要项目结构
ProjectHookClass 实现 MyHookClassInterface (groovy 类) ProjectHookService 实现 MyHookServiceInterface(服务) 资源.groovy 豆子= { myHookClassInterface(ProjectHookClass) myHookServiceInterface(ProjectHookService) }
该解决方案使用源插件就像一个魅力,但不会以二进制模式注入 MyService 依赖项。我还启动了 grails 控制台并 ctx.getBean('myHookClassInterface') 返回:
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为“myHookClassInterface”的bean 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:269) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093) 在 org.springframework.beans.factory.BeanFactory$getBean.call(未知来源) 在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 在 ConsoleScript0.run(ConsoleScript0:1)
谢谢
法比奥