将较窄范围内的豆子注入广泛的豆类是否安全?
Seam CDI是否负责确定当前的EVENT / REQUEST / PAGE上下文以正确注入SESSION / CONVERSATION bean。
我的意思是。我不希望一个页面/偶数对象与其他页面/事件的数据混淆。
我总是可以在方法中使用Component.getInstance()来确保无论如何都能获得当前事件/页面的bean。但我想使用 @In(scope = ScopeType.EVENT),即便如此。
答案 0 :(得分:1)
默认情况下会话和页面范围组件是同步的。因此,将事件范围的组件(例如EntityManager
)注入其中应该是安全的。在同步时,两个请求不会干扰两个不同的注入对象。
为了完全确定,您没有遇到并发问题,我建议您不要注入这些组件,而是从组件存储库中获取它们:
MyComponent myComponent = (MyComponent) Component.getInstance("myComponent");