Jakarta ee JavaEECDI作用域、EJB和托管bean序列化
对作用域、EJB和托管bean有一些问题Jakarta ee JavaEECDI作用域、EJB和托管bean序列化,jakarta-ee,serialization,jboss,dependency-injection,cdi,Jakarta Ee,Serialization,Jboss,Dependency Injection,Cdi,对作用域、EJB和托管bean有一些问题 作用域(javax.enterprise.context.ApplicationScope、javax.enterprise.context.SessionScope)是否仅用于EJB?或者它们适用于所有托管bean?直到今天,我还很确定这是为所有的管理豆 在我的申请中,我们有: @ApplicationScoped public class MyClass implements MyNonSerializableInterface { @Injec
@ApplicationScoped
public class MyClass implements MyNonSerializableInterface {
@Inject
private transient NonSerializableLogger transientLogger;
@Inject
private NonSerializableLogger logger;
...
}
还有一些经理:
@Singleton
public class SomeManager {
@Inject private MyClass myClass;
}
和web服务:
@Path("some")
public class SomeWebService {
@Inject private SomeManager;
}
CDI作用域在CDI容器的上下文中进行评估。这就是说,CDI规范的设计者确保它可以与EJB和jsf管理的Bean一起操作。也就是说
也就是说,任何CDIBean都可以注入到任何EJB bean中。通常,在与web容器没有关联的EJB容器中,@Dependent和@ApplicationScope是唯一有意义用法的作用域。谢谢,先生。编辑了我的问题。因为只有第一个答案回答了我的一个问题,而且你似乎说链接(Java EE教程)是错误的?“作用域(ApplicationScope,SessionScope…)是否仅适用于EJB?”所以实际上:“CDI托管bean是上下文的,EJB bean不是”Adam Bien: