tôi đang học cho việc xác nhận Lõi mùa xuân và tôi có một số dount về về câu hỏi này finded vào tài liệu học tập được cung cấp:Cách đóng ApplicationContext một cách chính xác vào mùa xuân?
cách ưa thích để đóng một bối cảnh ứng dụng là gì?
Tôi biết rằng nếu tôi có một cái gì đó như thế này:
ConfigurableApplicationContext context = …
// Destroy the application
context.close();
bởi việc sử dụng các close() phương pháp trên bối cảnh Objet các ApplicationContext được đóng lại và các ứng dụng bị phá hủy.
Nhưng tôi nghĩ rằng đây không phải là cách tốt nhất mà tôi phải làm.
Đọc tài liệu chính thức tôi thấy rằng tôi cũng có thể làm một cái gì đó như thế này:
context.registerShutdownHook();
rằng đăng ký một Hook Shutdown với JVM vì vậy nó là JVM sẽ kích hoạt giai đoạn gần Spring trước khi thoát JVM . Vì vậy, trên lối ra JVM, giai đoạn gần của Spring sẽ thực hiện.
Trên tài liệu tôi có thể đọc: thường không thể gọi context.close()
vì nhiều ứng dụng (ứng dụng web) chạy vô thời hạn Nhưng xác nhận cuối cùng này có ý nghĩa gì? tại sao ứng dụng web chạy vô thời hạn?
Vì vậy, câu hỏi của tôi là:
- Tôi có thể sử dụng cách thứ hai này để đóng một bối cảnh ứng dụng cũng có không ứng dụng web?
- Được ưu tiên là
context.close()
?
Tnx
'nhiều ứng dụng (ứng dụng web) chạy vô thời hạn' .. Nó thường đề cập đến những điều xảy ra trong vòng lặp vô hạn trừ khi bạn ngừng quá trình, giống như SocketServer của bạn đang nghe yêu cầu gửi đến. Tại sao bạn muốn đóng WebApplicationContext theo cách thủ công ngay từ đầu? Nó thường được tạo ra tại máy chủ khởi động và bị phá hủy trong khi máy chủ tắt máy – Arkantos
Một ứng dụng web không bao giờ dừng lại bởi vì nếu bạn làm điều đó, trang web sẽ ngừng hoạt động. Nếu bạn muốn ngừng chạy ứng dụng web, bạn sẽ tắt nó (bằng cách dừng máy chủ web chẳng hạn). Khi bạn làm điều đó, JVM cũng sẽ bị dừng lại để "Shutdown Hook with the JVM" là cách để đóng ngữ cảnh với JVM. Tại sao bạn muốn dừng ngữ cảnh? – rlm
đóng được sử dụng trong các ứng dụng web và shutDownHook được sử dụng trong các ứng dụng độc lập. Chỉ cần đăng câu trả lời của tôi với vài chi tiết hơn :) – Arkantos