Cuando mi aplicación web de primavera se apaga, ¿hay algún evento que pueda conectar de alguna manera que pueda realizar algún código de limpieza para vaciar algunas piscinas, etc.¿La primavera tiene un proceso de apagado para poner el código de limpieza?
Respuesta
podría utilizar el siguiente
destruir método
como @ amir75 recomienda@PreDestroy anotación
Implementar DisposableBean y anular método destroy.
Todos los detalles sobre estos se pueden encontrar en Disposable Callbacks.
Los granos de primavera tienen un atributo 'destroy-method', que ser invocado cuando 'cierra' su contexto.
<bean id="bean1"
destroy-method="stop"
class="com.example.Bean" />
Para cerrarla, que se podría llamar al método close():
(o simplemente apague el contenedor en su caso)
Espero que ayude.
La manera no Spring de manejar esto es escribir una clase que implementa ServletContextListener
y hacer su limpieza en su contextDestroyed
m ethod. Agregarías tu clase como un oyente de contexto en web.xml.
Según la especificación JSR-250, la mejor práctica para utilizar en la aplicación de muelles moderna es la anotación @PreDestroy
, ya que el uso de este enfoque desacoplará sus granos de Spring.
Según la primavera de arranque logback proyecto de ejemplo, se debe cerrar el contexto para limpiar el sistema de registro: https://github.com/spring-projects/spring-boot/commit/10402a651f1ee51704b58985c7ef33619df2c110
Ejemplo:
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleLogbackApplication.class, args).close();
}
- 1. primavera de error Programador de apagado
- 2. intellij - código de limpieza
- 3. ¿Dónde pongo el código de limpieza en una aplicación Flask?
- 4. Limpieza de código nítido C: reajuste
- 5. Jquery .each() incluyendo un retraso buscando el código de limpieza
- 6. Limpieza de código en netbeans
- 7. Forzar el apagado de la aplicación (.net)
- 8. ¿Cuál es el lugar correcto para poner un código de arranque extra en django?
- 9. Python: prueba de rendimiento, asegurando la limpieza
- 10. ¿AppDomain es equivalente a un proceso para el código .NET?
- 11. ¿Dónde coloca el código de limpieza para las subclases de NSDocument?
- 12. ¿Cómo simular el apagado de Windows para la depuración?
- 13. Deshacerse de la confirmación de "búfer tiene proceso en ejecución" cuando el proceso es un proceso flymake
- 14. resharper "código de limpieza" contra la palabra clave 'var'
- 15. ¿Dónde procesa el kernel de Linux y la limpieza de las conexiones TCP después del proceso?
- 16. Java oneliner para la lista de limpieza
- 17. ¿Hay una directiva de comentarios de Resharper para deshabilitar la limpieza del código para una clase?
- 18. Código de limpieza de Eclipse para todo el conjunto de paquete/clase
- 19. Apagado de la aplicación en MonoMac
- 20. Detectando un apagado programado
- 21. ¿Cómo crear un proceso en segundo plano en la aplicación de primavera?
- 22. Visual Studio: ejecutar el código de limpieza cuando se detiene la depuración
- 23. Android de apagado raíz
- 24. Forzar a ReSharper a utilizar la configuración de StyleCop para la limpieza del código
- 25. ¿Tiene un subproceso de Java su propia identificación de proceso?
- 26. Configuración de seguridad de primavera basada en código
- 27. Dónde poner el código común para iPhone, CLLocationManager
- 28. Cómo crear un evento personalizado de limpieza (post-limpieza) en Visual Studio 2008?
- 29. ¿Cómo puedo configurar limpieza del código de ReSharper de ahorrar?
- 30. Auto-limpieza para TortoiseSVN
El problema con este enfoque es que la primavera es, probablemente, haciendo la Lo mismo, y no es obvio si su oyente de contexto de servlet personalizado se ejecutará antes ... o después del Spring one. Esto podría hacer la vida incómoda. –