Java EE 中的 CDI 与 EJB 组件的打包部署全解析
1. CDI 中会话 Bean 歧义的解决
在 CDI 生命周期里,会话 Bean 可能会遇到“依赖不满足或歧义”的问题。当 CDI 容器无法在特定注入点确定一个可注入的会话 Bean 时,就会出现该错误。不过,我们可以通过使用限定符、替代方案或生产者来解决这些歧义。
会话 Bean 在 CDI 生命周期中,和其他 Bean 一样,可在编译时使用限定符(如 @Default 、 @Any 、 @New 、 @Named 或用户自定义的限定符)来解决依赖歧义。如果需要在部署时解决依赖歧义,则必须在 beans.xml 中显式声明替代会话 Bean。一旦在 beans.xml 中声明,它就可以自动用于查找、注入或 EL 解析。
会话 Bean 的生产者方法必须是 EJB 的业务方法或 Bean 类的静态方法,否则容器会将其视为定义错误。同样,生产者字段必须是 Bean 类的静态字段。用户可以像使用其他 Bean 一样,将会话 Bean 与限定符、替代方案和生产者结合使用。
会话 Bean 参与 CDI 生命周期也存在一些限制,例如会话 Bean 的远程接口不包含在 Bean 类型集合中,不能参与 CDI 生命周期。
2. CDI 应用的编译、部署和测试
CDI 不像 EJB 那样定义特殊的部署存档。CDI Bean 可以打包在 JAR、EJB - JAR 或 WAR 文件中,但存档
超级会员免费看
订阅专栏 解锁全文

87

被折叠的 条评论
为什么被折叠?



