Считать значение application.properties из основного класса загрузки Spring - PullRequest
0 голосов
/ 26 февраля 2020

В моем весеннем загрузочном приложении значение переменной установлено в application.properties. Я хочу прочитать это в основном классе java. Как я могу это сделать? следующий код возвращает ноль.

@SpringBootApplication
public class MyApplication {

@Value( "${spring.shutdown.sleep.time}" )
private static String shutdownSleepTime;

public static void main(String[] args) {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(MysApplication.class, args);
    System.out.println("sleep time : " + shutdownSleepTime);

Ответы [ 3 ]

1 голос
/ 26 февраля 2020

Вы можете прочитать свойство из контекста приложения.

public static void main(String[] args) {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(MysApplication.class, args);
    String shutdownSleepTime = applicationContext.getEnvironment().getProperty("spring.shutdown.sleep.time");
}
0 голосов
/ 26 февраля 2020

То есть вы хотите что-то напечатать при создании контекста приложения.

Для этого вы можете использовать прослушиватели событий:


@SpringBootApplication
public class MyApplication {

  @Value( "${spring.shutdown.sleep.time}" )
  private String shutdownSleepTime; // not static

  public static void main(String[] args) {
      ConfigurableApplicationContext applicationContext = 
  SpringApplication.run(MysApplication.class, args);

  }

  @EventListener
  public void onAppContextStarted(ApplicationStartedEvent e) {
      System.out.println("sleep time : " + shutdownSleepTime); 
  }
}
0 голосов
/ 26 февраля 2020

Рекомендую

@SpringBootApplication
public class MyApplication {

public static void main(String[] args) {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(MysApplication.class, args);
}

@Component
public static class CmdRunner implement CommandLineRunner {

  @Value( "${spring.shutdown.sleep.time}" )
  private static String shutdownSleepTime;

  public void run(String... args) throws Exception {
    System.out.println("sleep time : " + shutdownSleepTime);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...