Po zamknięciu mojej wiosennej aplikacji internetowej, czy zdarzeniem, które mogę podłączyć, mogę w jakiś sposób wykonać jakiś kod oczyszczający, aby opróżnić kilka basenów itp.Czy wiosna ma proces wyłączania, aby umieścić kod oczyszczania?
Odpowiedz
można użyć następujących
zniszczyć-metody
jak @ amir75 zaleca@PreDestroy adnotacja
Wdrożenie DisposableBean zniszczyć i zastąpić metodę.
Wszystkie relacje na temat tych można znaleźć pod adresem Disposable Callbacks.
Fasolka wiosenna ma atrybut "metoda niszczenia", która być wywołane, gdy "zamkniesz" swój kontekst.
<bean id="bean1"
destroy-method="stop"
class="com.example.Bean" />
Aby go zamknąć, można wywołać metodę close():
(lub po prostu zamknąć pojemnik, jeśli to właściwe)
nadzieję, że pomoże.
Nie-wiosenny sposób radzenia sobie z tym jest napisanie klasy, która implementuje ServletContextListener
i wykonanie czyszczenia w jego contextDestroyed
m etod. Dodałeś swoją klasę jako detektor kontekstu w web.xml.
W oparciu o specyfikację JSR-250 najlepszą praktyką do zastosowania w nowoczesnych aplikacjach wiosennych jest adnotacja @PreDestroy
, ponieważ zastosowanie tej metody spowoduje odseparowanie fasoli od wiosny.
Według przykładowego projektu wiosną Boot logback, należy zamknąć kontekst, aby oczyścić system rejestrowania: https://github.com/spring-projects/spring-boot/commit/10402a651f1ee51704b58985c7ef33619df2c110
Przykład:
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleLogbackApplication.class, args).close();
}
- 1. Gdzie umieszczasz kod oczyszczania dla pod-klas NSDocument?
- 2. Gdzie umieścić kod oczyszczający w aplikacji Flask?
- 3. FizzBuzz oczyszczania
- 4. Odpowiedź dla preflight ma nieprawidłowy kod stanu HTTP 401 - Wiosna
- 5. Jak sprawdzić, czy proces ma uprawnienia administracyjne
- 6. Jak mogę odzyskać subdomenę w serwlecie? Czy wiosna ma pomocników?
- 7. Czy mogę umieścić dowolny kod elizujący w .dir-locals.el?
- 8. Czy każdy proces ma własne stdin, stdout i stderr?
- 9. Bezpośrednio umieścić kod HTML w WebView (Android)
- 10. Gdzie umieścić cały kod JavaScript jQuery?
- 11. Jak umieścić kod HTML w komórce Slickgrid?
- 12. Określanie, który proces ma blokadę pliku
- 13. Czy istnieje sposób, aby zatrzymać proces indeksowania couchdb?
- 14. Czy jest polecenie, aby cofnąć proces init Git?
- 15. przestać oglądać katalog dla zmiany (oczyszczania)
- 16. Jak mogę umieścić bieżący działający proces linuxowy w tle?
- 17. Czy można przyjąć proces?
- 18. Jak umieścić kod JavaScript w dokumencie PDF?
- 19. Jak umieścić kod HTML w jQuery .text()
- 20. Gdzie umieścić swój kod Google Analytics
- 21. Django: Czy powinienem rozpocząć osobny proces?
- 22. Czy mogę spowodować, aby program ipython zakończył kod wywołujący?
- 23. Kod w Ruby, aby sprawdzić, czy witryna ma przyjazne adresy URL dla wyszukiwarek
- 24. Czy PHP ma wbudowany optymalizator?
- 25. Przycisk wyłączania w jQuery
- 26. Czy ma sens posiadanie opatrzonej adnotacjami kontrolki abstrakcyjnej klasy - wiosna MVC
- 27. Powtarzanie „Asynchronous Sesje faza oczyszczania począwszy TERAZ”
- 28. OK, aby umieścić komentarze przed deklaracją XML?
- 29. Czy istnieje przełącznik do wyłączania trigrafów z klang?
- 30. MYSQL: Aby zabić proces przy użyciu sys_exec()
Problem z tego podejścia jest to, że wiosna jest prawdopodobnie robi to samo, i nie jest oczywiste, czy Twój niestandardowy detektor kontekstu serwletu będzie działał przed ... czy po wiosennym. To może uczynić życie niezręcznym. –