У меня это значение определено в файле application.properties
tdk.date.format=yyyy-MM-dd'T'HH:mm:ss'.000Z'
что я использую в этом классе:
public class TdkDateUtils {
private static final Logger LOG = LoggerFactory.getLogger(CryptoDateUtils.class);
@Value("${tdk.date.format}")
private static String tdkDateFormat;
public static boolean afterYesterday2(String strDate) throws ParseException {
LOG.debug("tdkDateFormat -> {} ", tdkDateFormat);
SimpleDateFormat format = new SimpleDateFormat(tdkDateFormat);
Date yesterdayDate = Date.from(Instant.now().minus(1, ChronoUnit.DAYS));
return format.parse(strDate).after(yesterdayDate);
}
}
но это ноль
Я не думаю, что ваша проблема связана с версией Spring Boot.




TdkDateUtils - это служебный класс, а afterYesterday2 - статический метод. Он существует полностью вне контекста Spring вашего приложения, аннотации вроде @Value здесь обрабатываться не будут.
Чтобы @Value работал, вам нужно сделать TdkDateUtils bean-компонентом, поскольку только компоненты Spring будут обрабатываться PropertyPlaceholderConfigurer. В качестве альтернативы можно было бы прочитать и установить свойство самостоятельно в блоке статической инициализации TdkDateUtils, но это противоречит философии Spring внедрения зависимостей.
Spring не позволяет вводить значения в статические переменные. Создайте нестатический метод установки для ввода значения.
private static String tdkDateFormat;
@Value("${tdk.date.format}")
public void setDateFormat(String s){
tdkDateFormat = s;
}
Является ли
TdkDateUtilsкомпонентом типаcomponentилиservice?? Я не вижу на нем аннотации. Spring не сможет вводить в него значения, если Spring не сможет просканировать класс и сгенерировать из него bean-компонент.