Я хочу внутреннюю конфигурацию в application.yml. но в нем говорится, что значение атрибута должно быть постоянным. Что мне делать в этой ситуации?
@Value("${robot.internal}")
String internal;
@Scheduled(fixedRate = internal)
public void runAllCheckPoint() {
}




В java Annotations может иметь только выражение констант. Потому что они обрабатываются во время компиляции. Аннотации - это метаданные (для класса, интерфейса, переменных, методов или самих аннотаций), которые не должны изменяться во время выполнения.
Допустимое использование
@Scheduled(fixedRate = "10")
public void runAllCheckPoint() {
}
private static final String FIXED_RATE = "10";
@Scheduled(fixedRate = FIXED_RATE)
public void runAllCheckPoint() {
}
Это не сработает, потому что по замыслу атрибуты аннотации должны быть статичными (как сообщается в сообщении). Используйте
fixedRateStringи поместите туда заполнитель.fixedRateString = "${robot.internal}должен помочь и, конечно же, удалить переменную, поскольку она вам больше не нужна.