如何将Grails服务注入src/groovy类
发布时间:2020-12-14 16:36:35 所属栏目:大数据 来源:网络整理
导读:Grails 2.4.x在这里.如果我使用grails create-service com.example.Widget创建了Grails服务,那么如何在src / groovy下的类中注入该服务的引用(“bean”)? 这实际上没有在官方Grails文档的任何地方解释,并且广泛的搜索转回了nadda. 解决方法 1)您可以使用res
Grails 2.4.x在这里.如果我使用grails create-service com.example.Widget创建了Grails服务,那么如何在src / groovy下的类中注入该服务的引用(“bean”)?
这实际上没有在官方Grails文档的任何地方解释,并且广泛的搜索转回了nadda. 解决方法
1)您可以使用resources.groovy将Spring Beans注入非artefact groovy文件中:
MyClass.groovy class MyClass { def widgetService ... } resources.groovy beans = { myclass(com.example.MyClass) { widgetService = ref('widgetService') } } 2)还有一个额外的@Autowired注释可以做同样的事情: MyClass.groovy import org.springframework.beans.factory.annotation.Autowired class MyClass { @Autowired def widget ... } resources.groovy beans = { myclass(com.example.MyClass) {} } 注意 – 这次myclass bean不需要对小部件的引用. 3)有一种方法可以注入WidgetService – 使用Holders类来获取grailsApplication,它将引用现有的bean. import grails.util.Holders class MyClass { def widgetService = Holders.grailsApplication.mainContext.getBean('widgetService') ... } ** **更新 4)还有另一个选项是1)和2)的混合 – MyClass.groovy class MyClass { def widgetService ... } resources.groovy beans = { myclass(com.example.MyClass) { bean -> bean.autowire = true } } 这是我一直在本地使用的方法,因为我觉得它是最干净的,但它确实更多地利用了Grail的“魔力”(无论好坏). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |