gpt4 book ai didi

java - 在 spring 构造函数中注入(inject)使用构建器模式的对象

转载 作者:行者123 更新时间:2023-12-01 17:47:42 31 4
gpt4 key购买 nike

我在这里看到了很多人问这个问题,但没有一个答案对我的情况有帮助。

我正在使用square sdk这提示我在使用之前像这样创建客户端。

import com.squareup.square.SquareClient;
import com.squareup.square.Environment;

SquareClient square = new SquareClient.Builder()
.environment(Environment.SANDBOX)
.accessToken("YOUR_SANDBOX_ACCESS_TOKEN")
.build();

鉴于服务看起来像这样,spring将无法找到所需的bean。并会给出类似的错误,

No qualifying bean of type 'squareClient'

所以我的问题是如何使用依赖注入(inject)将两个参数加载到服务中,以使方形服务可测试。

@Service
public class SquareService {
private final SquareClient squareClient;

public SquareService(SquareClient squareClient) {
this.squareClient = squareClient;
}
}

还有我的测试

@Before
public void setup() {
sut = new SquareService(new SquareClient.Builder()
.environment(Environment.SANDBOX)
.accessToken("YOUR_SANDBOX_ACCESS_TOKEN")
.build());
}

最佳答案

您可以创建一个@Configuration类并手动创建bean:

@Configuration
public class SquareConfiguration {

@Value("${my.config.sandboxAccessToken}")
private String sandboxAccessToken;

@Bean
public SquareService createSquareService(){
return new SquareService(new SquareClient.Builder()
.environment(Environment.SANDBOX)
.accessToken(this.sandboxAccessToken)
.build());
}
}

关于java - 在 spring 构造函数中注入(inject)使用构建器模式的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60836504/

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