gpt4 book ai didi

spring - 依赖注入(inject) : conditional

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

这是我已经在 Grails 中做的一个极其简化的示例:

// this can be a service or normal class
public abstract class Person {
public final String introduceSelf() {
return "Hi, I'm " + getFullName()
}

protected abstract String getFullName()
}

// Service
class AlexService extends Person {
protected String getFullName() {
return "Alex Goodman"
}
}

// Service
class BobService extends Person {
protected String getFullName() {
return "Bob Goodman"
}
}

// Service
class CarlService extends Person {
protected String getFullName() {
return "Carl Goodman"
}
}

// Controller
class IntroduceController {
def alex
def bob
def carl

def index() {
if(params.person == "a")
render alex.introduceSelf()
if(params.person == "b")
render bob.introduceSelf()
if(params.person == "c")
render carl.introduceSelf()
}
}

我正在寻找更多面向对象的方法,例如:
// Controller
class IntroduceController {
def person

def index() {
// inject a proper person in a more object oriented way

render person.introduceSelf()
}
}

您能否建议如何以更加面向对象/动态的方式实现这一目标?

最佳答案

你可以写一个person grails-app/conf/spring/resources.groovy 中的 bean 定义文件。例如:

beans = {
person(BobService)
}

欲了解更多信息,请查看: http://grails.org/doc/latest/guide/spring.html#springdslAdditional

关于spring - 依赖注入(inject) : conditional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21753293/

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