diff --git a/spring-shell-docs/modules/ROOT/nav.adoc b/spring-shell-docs/modules/ROOT/nav.adoc index a1f181b8..09778e53 100644 --- a/spring-shell-docs/modules/ROOT/nav.adoc +++ b/spring-shell-docs/modules/ROOT/nav.adoc @@ -62,6 +62,7 @@ ** xref:using-shell-customization-logging.adoc[] ** xref:using-shell-customization-commandnotfound.adoc[] ** xref:using-shell-customization-singlecommand.adoc[] +** xref:using-shell-customization-contextclose.adoc[] * xref:using-shell-execution.adoc[] * xref:using-shell-testing.adoc[] ** xref:using-shell-testing-basics.adoc[] diff --git a/spring-shell-docs/modules/ROOT/pages/using-shell-customization-contextclose.adoc b/spring-shell-docs/modules/ROOT/pages/using-shell-customization-contextclose.adoc new file mode 100644 index 00000000..609a7d65 --- /dev/null +++ b/spring-shell-docs/modules/ROOT/pages/using-shell-customization-contextclose.adoc @@ -0,0 +1,25 @@ +[[using-shell-customization-contextclose]] += Context Close +:page-section-summary-toc: 1 + +ifndef::snippets[:snippets: ../../test/java/org/springframework/shell/docs] + +Command execution logic happens via Spring Boot's `ApplicationRunner` beans. +Normally Spring `ApplicationContext` closes automatically after these runner +beans has been processed unless there is something what keeps it alive like +use of `@EnableScheduling` or generally speaking there are threads which +don't die automatically. + +It is possible to add configuration property `spring.shell.context.close` +which registers `ApplicationListener` for `ApplicationReadyEvent` and requests +context close after shell has completed its execution logic. + +[source, yaml] +---- +spring: + shell: + context: + close: true +---- + +NOTE: This setting is not enabled by default.