Как проверить запуск и остановку с помощью пружинных рамок?

1

Привет, мне нужно отправить электронное письмо при запуске приложения и отправить его по электронной почте, когда мое приложение остановится.

Используя весну...

public class Main {
    public static void main(String[] args) {
        FileSystemXmlApplicationContext fac = new FileSystemXmlApplicationContext("config/applicationContext.xml");
    }
}

Остальное подключено через контекст приложения...

Полагаю, я могу просто ввести простой компонент, который реализует интеллектуальный жизненный цикл и отправляет электронное письмо из методов start() и stop()?

Теги:
spring

2 ответа

2
Лучший ответ

Вы можете просто использовать компонент в одиночной области по умолчанию и объявить его метод init и destroy. Бобу не нужно придерживаться весны и может быть что-то вроде:

public class StartAndStop {

    public void onStart() {
        // send the mail signaling start of application
        ...
    }

    public void onStop() {
        // send the mail signaling stop of application
        ...
    }
}

В xml config:

<bean class="org.example.StartAndStop" init-method="onStart" destroy-method="onStop"/>

И с конфигурацией Java

@Configuration
public class Configurer {

    @Bean(initMethod="onStart", destroyMethod="onStop")
    StartAndStop startAndStop() {
        return new StartAndStop();
    }
    ... other beans configuration ...
}

Конечно, вы также можете использовать пружину для установки свойств в bean-компоненте...

  • 0
    Я думаю, что мне нравится это больше ...
  • 0
    Оба одинаково хорошие ответы, но в моей ситуации я выбрал этот подход и отметил его как принятый ответ. :)
Показать ещё 3 комментария
1

Весна автоматически вызывает события в этих ситатуациях.

Вы можете прослушивать события, создав компонент ApplicationListener:

@Component
public class ContextRefreshListener implements ApplicationListener<ContextRefreshedEvent> {

  @Override
  public void onApplicationEvent(final ContextRefreshedEvent event) {
    // is called whenever the application context is initialized or refreshed
  }
}

Spring вызывает следующие события контекста приложения:

См. Документацию по стандартным и пользовательским событиям

  • 0
    Хорошо, я пытаюсь дать вам знать. Спасибо
  • 0
    Нужно ли явно звонить? новый ClassPathXmlApplicationContext ("applicationContext.xml"); cac.start ();
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню