将EVENT范围的bean注入CONVERSATION / SESSION范围的bean是否更安全?

时间:2011-07-14 02:30:09

标签: java java-ee dependency-injection seam

将较窄范围内的豆子注入广泛的豆类是否安全?

Seam CDI是否负责确定当前的EVENT / REQUEST / PAGE上下文以正确注入SESSION / CONVERSATION bean。

我的意思是。我不希望一个页面/偶数对象与其他页面/事件的数据混淆。

我总是可以在方法中使用Component.getInstance()来确保无论如何都能获得当前事件/页面的bean。但我想使用 @In(scope = ScopeType.EVENT),即便如此。

1 个答案:

答案 0 :(得分:1)

默认情况下会话和页面范围组件是同步的。因此,将事件范围的组件(例如EntityManager)注入其中应该是安全的。在同步时,两个请求不会干扰两个不同的注入对象。

为了完全确定,您没有遇到并发问题,我建议您不要注入这些组件,而是从组件存储库中获取它们:

MyComponent myComponent = (MyComponent) Component.getInstance("myComponent");