gpt4 book ai didi

java - 需要在 play-2.5 中通过 DI 在自定义类中创建单个 WSClient 对象作为该自定义类的属性。

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:55 25 4
gpt4 key购买 nike

我们正在使用带有 java 的 play2.5。我有一个自定义类,即 A 类,我在其中通过 DI 注入(inject)了一个 WSClient 对象作为自定义类 A 的属性。我们创建此自定义类 A 的多个实例,因此对于自定义类 A 的每个新实例,我们都会获得一个 WSClient 的新实例。我们的要求是在自定义类A的多个实例中只能有一个WSClient实例。所以我在WSClient的属性上方使用了javax.inject的@Singleton注释。但它不会创建单例实例,每次每当我实例化自定义类 A 时,它都会创建一个新的 WSClient 实例。任何人都可以建议一些 sol 在我的自定义类 A 中创建 WSClient 的单个实例吗?下面是代码片段:

class A {

private final WSRequest holder;

@Singleton
public WSClient wsClient = Play.current().injector().instanceOf(WSClient.class);

A(String url) {
holder = wsClient.url(url);
}
}

最佳答案

1)使用Spring框架

2) 将 wsclient 声明为具有默认单例范围的 bean

Declaring Bean

3) 使用autowire spring将bean wsclient注入(inject)A类的能力

关于java - 需要在 play-2.5 中通过 DI 在自定义类中创建单个 WSClient 对象作为该自定义类的属性。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43185387/

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