Làm thế nào là phiên được xác định trong @SessionScoped
Đậu CDI?
Chú thích này chỉ có hiệu lực khi được gọi từ vùng chứa Servlet, trong đó phiên được xác định rõ ở dạng HttpSession
?@SessionScoped hoạt động như thế nào với EJB? CDI chỉ dành cho web-tier không?
Nếu không, cách EJB với @Inject @SessionScoped MyBean myBean
có thể biết phiên thực sự là gì? Ý tôi là, các phương thức của EJB này có thể đã được gọi bởi một máy khách độc lập, RESTful WS hoặc bởi một số khung nhìn khác.
Điều gì sẽ xảy ra trong trường hợp này? Nếu chú thích không có ý nghĩa, nó có nên tiêm cá thể MyBean
tươi cho mỗi yêu cầu hoặc có thể nó sẽ giữ nguyên cùng một cá thể trên tất cả các yêu cầu không?
Thực sự, phiên khác được xác định như thế nào ngay cả đối với một cái gì đó giống như SFSB? Tất nhiên không có gì cấm bạn tạo ra phạm vi của riêng bạn và buộc nó vào bất cứ điều gì bạn thích. – LightGuard
@LightGuard, tôi đoán rằng trong SFSB, "phiên" kéo dài từ việc khởi tạo SFSB để loại bỏ nó (hoặc hết thời gian chờ). Vì vậy, miễn là tôi có một tham chiếu đến nó, tôi sẽ nhấn cùng một môi trường (phiên). –
@Gonzalo, cảm ơn thông tin này. Tôi tự hỏi - điều gì sẽ xảy ra nếu tôi sử dụng hạt '@ SessionScoped' trong môi trường không có phạm vi như vậy (tức là REST WS như được đề cập trong câu hỏi). Mỗi yêu cầu được coi là một phiên mới? Điều gì về SFSB, như LightGuard đã đề cập. Liệu '@ SessionScoped' có tham chiếu đến phiên' HttpSession' hoặc phiên SFSB không? –