@Value injection occurs after construction call. This means at construction if without @Value annotation the construction parameters would not be provided value, but would be null or empty.
Solution:
either use @PostConstruct, when then the value would be available, or
use @Value annotation at constructor parameter
See https://stackoverflow.com/questions/56030501/value-annotation-not-working-in-constructor