【发布时间】:2020-11-22 03:43:55
【问题描述】:
我想从用户定义的 spring bean 中读取 spring boot ssl keystore 密码值并设置为 SSL 属性 server.ssl.key-password。
@Component
public class KeyStorePasswordBean {
public String password() {
//implementation
}
}
我尝试使用 EnvironmentPostProcessor 但抛出 NullPointer 异常,因为 KeyStorePasswordBean bean 将在 EnvironmentPostProcessor 之后初始化
public class PropertyEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Autowired
KeyStorePasswordBean keyStorePasswordBean;
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
String keystorePassword = keyStorePasswordBean.password(); //NullPointerException
System.out.println("password: " + keystorePassword);
}
}
如何在 Spring Boot 中处理这个问题? 在tomcat服务器初始化启动前思考如何将KeyStorePasswordBean bean加载到spring上下文中。
我使用的是 Spring Boot 2.25 版和 Spring 5.2.4 版
【问题讨论】:
标签: java spring spring-boot spring-mvc spring-security