gpt4 book ai didi

使用接口(interface)定义spring bean

转载 作者:行者123 更新时间:2023-12-02 15:55:24 25 4
gpt4 key购买 nike

更新:重复。见 How to separate interface from implementation in Grails services?

我想通过它与 Spring 的接口(interface)来配置一个 bean——因为我希望在依赖注入(inject)框架中是可能的。

这是一个例子:

public interface MyInterface {
public void callMe();
}

public class MyImpl implements MyInterface {
public void callMe() {
println("Calling MyImpl");
}
}

我应该如何配置这个 bean 以使我可以切换实现,例如,取决于我是否在开发/生产环境中?在 Grails 中,我希望用以下内容填充我的 grails-app/config/spring/resources.groovy:
beans = {
myBean(MyInterface) {
implemented by MyImpl //sintax not supported
}
}

所以我可以在我的代码中定义和使用这个bean,比如:
def myBean
(...)
myBean.callMe()

我知道有一些 Spring 属性,如 factory-method 和 factory-bean 来实现这一点,但我想知道是否有一个简单直接的接口(interface),比如在 Spring/Grails 中定义 bean 的方式,无需样板代码来实例化它们。

最佳答案

bean 类型必须是非抽象类。

beans = {
myBean(MyImpl) {
// ...
}
}

如果需要,您仍然可以根据接口(interface)类型进行 DI,但 bean 定义需要具体类型。

关于使用接口(interface)定义spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34169731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com