Nếu tôi có @ManagedBean
là @SessionScoped
, tại sao tôi nên sử dụng @Stateful
EJB? Tôi đã sử dụng nó trước khi mua xe và duy trì trạng thái đàm thoại, nhưng vì một bean được quản lý sẽ được giữ trong phiên người dùng, tôi có thể lưu trữ trạng thái ở đó, sau đó gọi SLSB cho logic kinh doanh. Đúng không? Nếu có, thì ejbs trạng thái sẽ được để lại cho các ứng dụng cụ thể hơn, chẳng hạn như khi bạn cần giao dịch, v.v ...?đậu được quản lý theo phiên so với stateful ejb
Trả lời
Rất thường xuyên phiên đậu đậu có thể được sử dụng cho rất nhiều vấn đề kinh doanh.
Trạng thái không nhất thiết có nghĩa là chỉ có máy chủ từ xa giữ trạng thái, mặc dù đây chắc chắn là một trong các tùy chọn. Một khách hàng Swing từ xa trước tiên có thể gửi một loạt dữ liệu đến một bean phiên trạng thái, giữ lại phần còn lại và sau đó gửi một số lệnh hoạt động trên dữ liệu này. Điều này giúp khách hàng không phải gửi cùng một lượng dữ liệu (lớn) mỗi lần.
Trong trường hợp sử dụng từ xa, nó thực sự phần nào phản ánh việc sử dụng phiên HTTP khi trình khách web (trình duyệt) được sử dụng. Sự khác biệt chính là phiên là mỗi bean ở đây, trong khi với phiên HTTP, phiên là một phạm vi được chia sẻ bởi nhiều bean. Vì phiên HTTP dựa trên cookie và cookie là toàn cầu cho tên miền cho toàn bộ trình duyệt, phiên HTTP không thể trực tiếp hỗ trợ nhiều phiên từ cùng một ứng dụng (ví dụ: mỗi tab hoặc mỗi cửa sổ). Điều này là tầm thường với đậu phiên trạng thái.
Tuy nhiên ...
Khách hàng Swing từ xa nói chuyện với các EJB từ xa không phải là điều bình thường. Trong bối cảnh bạn mô tả trong câu hỏi của mình, bạn thường sẽ sử dụng các EJB cục bộ và bạn sẽ lưu trữ hầu hết trạng thái trong phiên HTTP (hãy cẩn thận với việc chia sẻ!) Và những ngày này trong phạm vi xem hoặc phạm vi hội thoại.
Vì vậy, cuối cùng, khi nào sử dụng đậu phiên trạng thái trong trường hợp này?
Một trường hợp sử dụng quan trọng là extended persistence context
trong JPA
. Thông thường với một quản lý thực thể giao dịch phạm vi, khi một thực thể vượt qua ranh giới giao dịch của một phương thức EJB gọi nó sẽ được tách ra. Nếu bạn muốn (lạc quan) khóa một thực thể giữa các tương tác của người dùng, điều này là không mong muốn. Bạn sẽ mất khóa.
Với bối cảnh kiên trì mở rộng, thực thể vẫn được đính kèm và các khóa hợp lệ khi bạn quay trở lại từ một cuộc gọi đến bean phiên trạng thái. Điều này rất hữu ích cho chức năng xem trước để đảm bảo rằng không ai khác đã thực hiện bất kỳ thay đổi nào đối với thực thể khi bạn ổn sau khi xem trước. Hoặc thực sự cho một giỏ mua hàng, nơi bạn muốn đảm bảo rằng trong một thời gian không thể bán hàng cho bất kỳ ai khác trong khi trong giỏ hàng.
- 1. Hiểu đậu/đậu được quản lý
- 2. Tìm đậu singleton stateful
- 3. phiên quản lý phạm vi đậu vs đậu trạng thái vs httpsession
- 4. Tiêm EJB so với chỉ các hạt được quản lý JSF
- 5. Đậu được quản lý JSF trong một Servlet
- 6. Ứng dụng so với Quản lý đối tượng Container được quản lý
- 7. Ứng dụng EagerSố đậu được quản lý được kiểm tra được xây dựng nhiều lần
- 8. những gì để sử dụng, quản lý đậu (đậu sao) hoặc đậu thực thể?
- 9. Quản lý phiên với Java Hibernate
- 10. Quản lý phiên Squeryl với 'sử dụng'
- 11. Quản lý phiên Android
- 12. Yii quản lý phiên
- 13. Quản lý phiên Wordpress
- 14. Làm thế nào để xóa một đối tượng của phiên quản lý phạm vi đậu?
- 15. Đậu không được quản lý tự động Chú thích với @Component
- 16. JSF - Bean được quản lý theo phiên không có phụ thuộc được tiêm lại trên phiên deserialization
- 17. Tại sao Đậu được quản lý không được tải trong Tomcat?
- 18. JSF Quản lý và điều chỉnh phiên
- 19. Tại sao có khác nhau chú thích quản lý đậu
- 20. Ứng dụng với quản lý phiên ở phía máy chủ
- 21. Sự khác nhau giữa quốc tịch và Stateful session bean
- 22. JSF2: Phiên mở trong Chế độ xem với EJB?
- 23. Quản lý phiên/cookie trong Apache JMeter
- 24. Quản lý phiên bản ThreadLocal Hibernate tương thích với ForkJoinPool?
- 25. Quản lý phiên trong ứng dụng được phân phối
- 26. Quản lý bộ nhớ của thành phần không được quản lý theo CLR
- 27. Điều gì sẽ được sử dụng để quản lý phiên?
- 28. Cookie phiên quản lý phiên Node.js/Express.js là cookie phiên
- 29. NHibernate quản lý phiên trong ASP.NET MVC
- 30. Khung mở rộng được quản lý (MEF) so với Khối ứng dụng hỗn hợp (CAB)
Cảm ơn câu trả lời rất chi tiết. Tôi nghĩ việc sử dụng đậu trạng thái đã được giảm xuống một cái gì đó rất cụ thể – arg20