Свойства конфигурации не читаются загрузкой Spring при установке таких свойств, как "export my_variable = кое-что" - PullRequest
1 голос
/ 05 июля 2019

изменить: пожалуйста, обратите пристальное внимание на вопрос. Я хочу внести изменения без перестройки и повторного развертывания приложения.Я хочу вносить изменения на лету.

У меня есть простое загрузочное приложение Spring, где я пытаюсь проверить, может ли приложение читать переменную среды без необходимости перестраивать и повторно развертывать приложение.

У меня есть простой основной класс, который также является @RestController

@SpringBootApplication
@RestController
@EnableScheduling
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Value("${taco.orders.pageSize}")
    private String pageSize;

    @GetMapping("/myName")
    public String myName() {
        return pageSize;
    }

    int i = 0;

    @Scheduled(fixedRate = 2000L)
    public void scheduled() {
        System.err.println(++i + "-" + pageSize);
    }
}

Это то, что у меня есть в моем файле application.yml:

taco:
  orders:
    pageSize: fifty

Этопечатать шрифт "пятьдесят".Но когда я иду в терминал и устанавливаю другое значение для ключа, это новое значение не отражается.

export TACO_ORDERS_PAGESIZE=NINETY

Я также создал git repo , если кто-то хочет повторить попытку.

1 Ответ

2 голосов
/ 06 июля 2019

Вам необходимо заменить переменную окружения в вашем файле yaml.

taco: 
     orders: 
        pageSize: {TACO_ORDERS_PAGESIZE : fifty}

Значение по умолчанию для вашего taco.orders.pageSize равно пятидесяти, оно будет автоматически заменено переменной env TACO_ORDERS_PAGESIZE NINETY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...