gpt4 book ai didi

java - 在 spring-boot 类构造函数中首先调用还是 bootstrap.yml?

转载 作者:行者123 更新时间:2023-11-29 04:22:00 25 4
gpt4 key购买 nike

我有一个 spring-boot 应用程序。我想从 bootstrap.yml 中选择一些值到类的构造函数中。以下是代码片段。

public class MapicsSCFFGeneratorServiceImpl implements MapicsSCFFGeneratorService {

@Value("${azuresb.nameSpace}")
private String nameSpace;

@Value("${azuresb.sasPolicyKeyName}")
private String sasPolicyKeyName;

@Value("${azuresb.sasPolicyKey}")
private String sasPolicyKey;

@Value("${azuresb.serviceBusRootURI}")
private String serviceBusRootURI;

@Value("${azuresb.queueName}")
private String queueName;

public MapicsSCFFGeneratorServiceImpl() {

config = ServiceBusConfiguration.configureWithSASAuthentication(nameSpace, sasPolicyKeyName, sasPolicyKey,
serviceBusRootURI);

}
}

我的问题是哪个先调用 bootstrap.ymlconstructor

因为如果我在构造函数中打印此值,另一方面我在构造函数外部得到 Null 值正在打印。

最佳答案

在对具有 Spring 属性的字段进行赋值的 Spring 处理之前调用构造函数是有意义的。
从逻辑的角度来看,必须在 Spring 值实例字段之前调用构造函数。

作为替代方案,您可以在使用 javax.annotation.@PostConstruct 注释的方法中移动使用 Spring 赋值的字段的处理。

来自规范:

The PostConstruct annotation is used on a method that needs to be executed after dependency injection is done to perform any initialization.

@PostConstruct
public void postProcess(){
config = ServiceBusConfiguration.configureWithSASAuthentication(nameSpace, sasPolicyKeyName, sasPolicyKey,
serviceBusRootURI);
}

关于java - 在 spring-boot 类构造函数中首先调用还是 bootstrap.yml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525959/

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