wrs*_*der 18 stateless-session-bean java-ee cdi java-ee-6 ejb-3.1
是否可以将请求范围的CDI bean注入无状态会话bean?
我曾经问了一个相关的问题,并认为具体的CDI @RequestScoped @Stateless问题值得自己发帖.
在EJB方法/ @RequestScoped和@Stateless之间传递状态
我还问了一个关于JMS @MessageDriven bean的类似问题 - 基本上想要了解@Stateless的相同内容.
Dav*_*ins 29
你绝对可以做你提到的事情并@RequestScoped在@Stateless会话bean和@MessageDrivenbean中使用bean.这是CDI规范和TCK的核心部分,保证便携.
请注意,对使用@Statelessbean的bean进行了测试@RequestScoped,但没有测试可以保证@MessageDrivenbean可以引用@RequestScopedbean.这只是一个疏忽,已经为Java EE 7 TCK修复了.所以请注意,如果它不适用于MDB案例,那可能不是你的错:)
解决方法是仅仅有你的MDB授人以任何类型的会话Bean作为@Stateless,@Stateful以及@Singleton所有具有@RequestScoped测试.
虽然@Stateless,@Singleton并且@MessageDriven可以通过注入范围引用@Inject,但它们不能是 @RequestScoped任何其他范围.只有@Stateful模型足够灵活以支持范围.换句话说,你可以注释@Statefulbean类本身@RequestScoped,@SessionScoped等等.
简单来说@Stateless,@Singleton已经修复了"范围". @Singleton基本上是@ApplicationScoped和@Stateless或许会像一些虚构的范围内@InvocationScoped,如果存在.@MessageDrivenbean 的生命周期完全取决于驱动它的连接器,因此也不允许具有用户定义的范围.
| 归档时间: |
|
| 查看次数: |
12770 次 |
| 最近记录: |