我可以将grails服务自动装配到java src类

时间:2015-08-13 10:28:57

标签: grails

我有一个Grails服务,我想从其他图书馆访问

如何从位于grails-app {{1}}文件夹中的java类自动装配Grails服务?

1 个答案:

答案 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
}