gpt4 book ai didi

grails 服务层次结构

转载 作者:行者123 更新时间:2023-12-02 14:13:26 25 4
gpt4 key购买 nike

假设我有 10 个 grails 服务。这些服务中的每一项都将调用 REST 服务。所以,我想封装 REST 代码,以便 10 个服务可以轻松地重用它。

在考虑选项时,我可以:

1) 使用 REST 相关代码创建另一个服务或 bean,并将其注入(inject) 10 个服务中的每一个。
2) 创建一个包含 REST 代码的父类(super class)服务,并让所有 10 个 grails 服务扩展这个类。

我正在尝试使用选项 2,但遇到依赖注入(inject)父类(super class)的问题。

例子:

class SuperService {
def aString
}

class ExampleService extends SuperService {
}

资源.groovy:
beans = {
superService(SuperService) {
aString = "something"
}
exampleService(ExampleService) {
}
}

当我在运行集成测试时在调试器中运行它时,我看到 aString 的值为 null。显然,这对我来说是个问题。

如您所料,使用以下 resources.groovy 运行相同的代码:
beans = {
superService(SuperService) {
}
exampleService(ExampleService) {
aString = "something"
}
}

和aString =“某事”。

所以,我更喜欢选项 2,因为它会减少配置布线,但我认为这不是可行的方法。换句话说,如果我必须在每个子类中设置 aString 就没有任何值(value)。

想法?

我错过了什么吗?

我也对其他选择持开放态度。

提前致谢,
托德

最佳答案

就 DRY 而言,您对选项 #2 有正确的想法——但它实际上只是一行。如果与 superService 对象唯一的共同点是服务,而没有其他方法,那么您实际上并没有为自己节省任何工作。如果有的话,仅仅为依赖注入(inject)声明一个父类(super class)会使事情变得更加隐藏并且可能更难维护。

听起来您提议将 REST 方法放在 superService 中,所以不确定您为什么担心依赖注入(inject)到 superService 中——您希望您的方法在那里执行 REST 交互,子类将能够调用。或者您是否正在尝试选项 1 和 2 的组合?

关于grails 服务层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936412/

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