Привет, мне нужно отправить электронное письмо при запуске приложения и отправить его по электронной почте, когда мое приложение остановится.
Используя весну...
public class Main {
public static void main(String[] args) {
FileSystemXmlApplicationContext fac = new FileSystemXmlApplicationContext("config/applicationContext.xml");
}
}
Остальное подключено через контекст приложения...
Полагаю, я могу просто ввести простой компонент, который реализует интеллектуальный жизненный цикл и отправляет электронное письмо из методов start()
и stop()
?
Вы можете просто использовать компонент в одиночной области по умолчанию и объявить его метод 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-компоненте...
Весна автоматически вызывает события в этих ситатуациях.
Вы можете прослушивать события, создав компонент 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 вызывает следующие события контекста приложения: