我有一个Grails服务,我想从其他图书馆访问
如何从位于grails-app {{1}}文件夹中的java类自动装配Grails服务?
答案 0 :(得分:0)
如何从位于grails-app SRC文件夹中的java类自动装配Grails服务?
在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
}