Jakarta ee @子类的DependsOn

Jakarta ee @子类的DependsOn,jakarta-ee,java-ee-7,ejb-3.2,Jakarta Ee,Java Ee 7,Ejb 3.2,@DependsOn可用于确保一个EJB在另一个EJB之前初始化: @Startup @Singleton public class SchemaMigration { // ... } @DependsOn("SchemaMigration") public class Crud<E extends BaseEntity> { // ... } @Startup@Singleton 公共类方案迁移{ // ... } @DependsOn(“计划化”) 公共级积

@DependsOn
可用于确保一个EJB在另一个EJB之前初始化:

@Startup @Singleton
public class SchemaMigration {
    // ...
}

@DependsOn("SchemaMigration")
public class Crud<E extends BaseEntity> {
    // ...
}
@Startup@Singleton
公共类方案迁移{
// ...
}
@DependsOn(“计划化”)
公共级积垢{
// ...
}
我想知道子类是否也隐式继承了这个约束

@Startup @Singleton
public class Birds extends Crud<Bird> {
    // ...
}

@Startup @Singleton
public class Frogs extends Crud<Frog> {
    // ...
}
@Startup@Singleton
公营雀鸟{
// ...
}
@启动@Singleton
公共级青蛙扩展积垢{
// ...
}

我知道普通Java注释不会被继承,但是JavaEE更改了一些注释的规则。但是我还没有找到关于
@DependsOn
注释的具体信息。

DependsOn
不能确保一个EJB在另一个EJB之前初始化

请参阅:

容器确保在调用singleton的PostConstruct方法之前,与singleton具有DependsOn关系的所有singleton bean都已初始化

这只适用于使用所引用单例的ejb名称的单例ejb的具体实例

关于会话bean的继承,EJB规范(4.9.2.1)说:

一个会话bean类被允许拥有本身就是会话bean类的超类。但是,对于这种情况,没有适用于注释或部署描述符处理的特殊规则。为了处理特定的会话bean类,所有的超类处理都是相同的,不管这些超类本身是否是会话bean类。在这方面,将会话bean类用作超类仅代表实现继承的方便使用,而没有组件继承语义


谢谢你的回复。我认为这里有两个案例需要考虑。(a) 依赖于一个抽象bean,它不能像您所说的那样与
DependsOn
一起工作,(b)我所依赖的bean总是具体的,但是依赖项应该从它们的基类继承依赖项。这就是我感兴趣的情况。我增强了关于会话bean超类的答案。这回答了你的问题吗?如果没有,请提供一个完整的exmaple并详细描述一下您的用例。好的,关于注释处理的声明似乎在一定程度上涵盖了这个主题。谢谢