有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案