Как получить эффективные свойства в приложении Spring Boot независимо от того, где оно определено? - PullRequest
1 голос
/ 14 июля 2020

предположим, что я определяю свойство при запуске приложения Spring Boot из командной строки, передавая -Dmy.property=314 в JVM, а также я определяю это свойство в application.properties:

my.property=318

, насколько мне известно, командная строка имеет более высокий приоритет, и когда я вставляю значение my.property в bean-компонент, я получаю 314. есть ли какой-либо API, свойства которого я могу получить независимо от того, где он определен, и уважать этот приоритет? Я имею в виду, что я получаю свойство, которое будет вставлено в beans к Spring.

1 Ответ

1 голос
/ 14 июля 2020

Если вы не хотите внедрять свойство через другие механизмы, такие как @Value или привязки, например @ConfigurationProperties, вы можете получить его через Environment

    @Autowired
    private Environment env;
    ...
    env.getProperty("xxx.yyy");
...