java如何通过构造函数在服务中手动注入依赖项?
我试图在另一个服务的构造函数中注入服务依赖项。(参见下面的示例代码)。然而,当我尝试分配api变量时,即使bean变量设置正确,也会抛出NoSuchBeanDefinitionException
还值得一提的是,当我扩展此服务并初始化子服务时,会发生这种情况
那么,我的问题是,如何根据配置中的设置将依赖性服务正确地注入到我的类中。太棒了
class MyService {
def api
public MyService() {
def beanString = ConfigurationHolder.config.api
def bean = ApplicationHolder.application.getMainContext().getBean(GrailsNameUtils.getPropertyName(beanString))
this.api = bean
}
}
编辑:澄清我的想法。我有两个API:一个XML和一个JSON,它们提供相同的数据,但具有不同的表示形式。但是,我希望能够设置配置文件中要使用的api,例如带有api名称的字符串
我的想法是为可用的api提供一个公共接口(ApiInterface),然后在初始化使用该api的服务时,将实例变量设置为配置的api
除此之外,我希望能够有特定于服务的设置,即在配置文件中为每个注入api的服务设置一个设置,设置要使用的api。 e、 g.
Config.groovy
firstService {
api = "xml"
}
secondService {
api = "json"
}
共 (0) 个答案