我有一个 grails 服务,我想从其他库访问它
如何从位于 grails-app SRC
中的 java 类中 Autowiring Grails 服务文件夹 ?
最佳答案
How Can I autowire a Grails service from java classes located in grails-app SRC folder ?
在
grails-app/conf/spring/resources.groovy
你可以使用这样的东西创建一个bean定义......beans = {
someBeanName com.packagename.SomeJavaClass
}
如果您希望该 bean 按名称自动连接,您可以执行以下操作:
beans = {
someBeanName(com.packagename.SomeJavaClass) { bean ->
bean.autowire = 'byName'
}
}
这将适用于这样的事情:
// src/java/com/packagename/SomeJavaClass.java
package com.packagename;
public class SomeJavaClass {
private MoneyService moneyService;
// if you have a moneyService bean in the context,
// it will be auto wired here
public void setMoneyService(MoneyService svc) {
moneyService = svc;
}
}
您也可以使用
@Autowired
如果您不想做 bean.autowire = 'byName'
,请在类里面添加注释业务在resources.groovy
.您拥有 Spring 附带的所有选项。
我希望这会有所帮助。
编辑:
或者,如果您尝试从另一个方向将 Java 类连接到您的服务,您的服务会自动按名称自动连接,因此您只需将 Java bean 添加到应用程序上下文,然后在服务中声明一个属性与bean名称相同。
服务:
// grails-app/services/com/packagename/MoneyService.groovy
package com.packagename
class MoneyService {
def someBeanName
}
bean 定义:
// grails-app/conf/spring/resources.groovy
beans = {
someBeanName com.packagename.SomeJavaClass
}
关于grails - 我可以将 grails 服务自动连接到 java src 类吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985665/