我有一些@SessionScoped
CDI豆。 以前他们都是JSF管理的bean(JSF从改变管理豆CDI管理的bean)。
我在做类似下面的删除一些会话范围JSF管理后,用户成功地放置在网上下订单。
Map<String, Object> sessionMap = context.getSessionMap();
sessionMap.remove("cartBean");
sessionMap.remove("orderItems");
sessionMap.remove("reviewOrderBean");
sessionMap.remove("intermediateLocaleBean");
sessionMap.remove("localeBean");
sessionMap.remove("currencyRateBean");
sessionMap.remove("currency");
让一切都被设置为默认顺序处理完成后。 这是不相关的破坏/其中用户不能注销之后订单处理成功终止整个HTTP会话无效。
不像JSF管理的bean,CDI豆存储到一些CDI管理器实现像焊接服务器的内存中。 因此,它们不提供会话地图- Map<String, Object>
。
这怎么可能就CDI豆反正模拟?
更新:
焊缝文档 :
请记住,一旦bean被绑定到上下文,直到它的背景被破坏仍然在这方面。 有没有办法手动从上下文中移除豆。 如果你不想让豆在会议上坐无限期,可以考虑使用具有短寿命的另一范围,如请求或对话范围。
所以,我认为,这是很难手动摧毁一个bean不破坏别的东西。