Spring Config Server @Value 返回 null

问题描述 投票:0回答:1

我有一个正确返回值的配置服务器,我可以毫无问题地提取值,除了这个我认为是由于使用@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"
            }
        }
    ]
}

`

我遇到问题的脚本,secret 和 expirationTime 总是空的,除非包含在 Bootstrap.yml 中,这是不实用的。 `

@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。我设法让它获取值的唯一方法是当它们在 Application.yml 或 Bootstrap.yml

中时
spring server config
1个回答
0
投票

在重写 JWT 实现后,我能够通过不使用 @PostConstruct 来解决这个问题

© www.soinside.com 2019 - 2024. All rights reserved.