gpt4 book ai didi

java - Spring Bean 没有被捡起来?

转载 作者:行者123 更新时间:2023-12-04 10:13:55 25 4
gpt4 key购买 nike

我有一个带有以下服务的 java spring 项目:

@Slf4j
public class DialogFlowService {

private String projectId;
private String sessionId;
private String languageCode;

public DialogFlowService(DialogFlowConfig dialogFlowConfig) {
log.info("aaa" + dialogFlowConfig.languageCode);
this.projectId = dialogFlowConfig.projectId;
this.sessionId = dialogFlowConfig.sessionId;
this.languageCode = dialogFlowConfig.languageCode;
}
}

构造函数将以下类作为参数:
@Configuration
@ConfigurationProperties(prefix = "dialog-flow")
public class DialogFlowConfig {

@NotNull
public String projectId;

@NotNull
public String sessionId;

@NotNull
public String languageCode;
}

理论上,这应该由以下 bean 实例化:
@Bean
public DialogFlowService dialogFlowService() {
return new DialogFlowService(new DialogFlowConfig());
}

但是在实践中,当我尝试记录构造函数参数之一时,它显示为 null。我错过了什么吗?

最佳答案

我认为像这样改变你的第三个代码片段会成功。

@Bean
public DialogFlowService dialogFlowService(DialogFlowConfig dialogFlowConfig) {
return new DialogFlowService(dialogFlowConfig);
}
DialogFlowConfig类已标记为 @Configuration .因此它由 Spring 应用程序上下文管理。因此,您不必使用 new 关键字显式创建对象。你可以把它作为一个参数

试试把 @EnableConfigurationProperties(DialogFlowConfig.class)进入你的 Spring Application 类。

关于java - Spring Bean 没有被捡起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61172573/

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