在 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)
谢谢
法比奥