我有一个配置服务器正确返回值,我可以拉值没有任何问题,除了这个脚本,我认为是由于使用@PostConstruct。然而,我尝试了多种解决方案都没有成功。有没有人有任何建议的变化,使这项工作?
配置服务器的输出'
{
"name": "auth-service",
"profiles": [
"jdbc"
],
"label": "1.0",
"version": null,
"state": null,
"propertySources": [
{
"name": "auth-service-jdbc",
"source": {
"spring.datasource.url": "jdbc:mysql://x.x.x.x:3306/test?useUnicode=true&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true&useSSL=false",
"spring.datasource.username": "xxxx",
"spring.datasource.password": "xxxxx",
"jwt.secret": "xxxxxxx",
"jwt.expiration": "86400"
}
}
]
}
脚本,我有问题,秘密和expirationTime总是空的,除非包含在Bootstrap。这是不实用的。'
@Component
public class JwtUtil {
@Value("${jwt.secret}")
String secret;
@Value("${jwt.expiration}")
String expirationTime;
private Key key;
@PostConstruct
public void init() {
this.key = Keys.hmacShaKeyFor(secret.getBytes());
}
到目前为止,我已经尝试使用环境代替@Value,构造函数和带和不带@PostConstruct。我设法让它抓住值的唯一方法是当它们在应用程序中。
我能够通过重写JWT实现后不使用@PostConstruct来解决这个问题