#java #spring #spring-boot #spring-context
Вопрос:
Должен ли я всегда закрывать контекст spring вручную ?
Есть ли какие-либо отличия (в отношении закрытия контекста) от написания :
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
и
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class)
.run(args);
}
?
Комментарии:
1. Нет, его нет, и вам не нужно его закрывать.
2. Я намеренно сохранил общий вопрос. В моем случае у меня есть приложение для пакетной обработки. Когда я удаляю
ctx.close()
приложение, оно никогда не заканчивается (даже если пакет успешно завершен). Поэтому я хочу знать, в каких случаях я должен закрыть контекст spring3. Тебе не следует этого делать. Если это пакет и он продолжает работать, у вас есть зависимость, которая поддерживает это (например, веб-зависимость, запускающая tomcat, или планировщик, или…).
4. Да, на самом деле, я использую а
TaskExecutor
. Как сказать ему, чтобы он выключился после завершения пакета ?5. Это должно произойти, если больше нечего обрабатывать. Разве нет чего-то еще запланированного или блокирующего поток?