MessageDrivenBeans 抽象父类中的 @Resource-annotation?

发布于 2024-12-15 21:11:05 字数 641 浏览 1 评论 0原文

这是可以的

@MessageDriven(...)
public class EventMDB implements MessageListener
{    
    @Resource
    private MessageDrivenContext context;

    //onMessage(Message)
    ...

,但是如果我将资源注释放在抽象父类中,它也可以工作吗?

@MessageDriven(...)
public class EventMDB extend ParentMDB
{
    //onEvent(Event)
    ...

public abstract class ParentMDB implements MessageListener
{
    @Resource
    protected MessageDrivenContext context;

    //onMessage(Message) retrieves object of ObjectMessage and invokes onEvent(Event)

    //abstract void onEvent(Event)
    ...

this is ok

@MessageDriven(...)
public class EventMDB implements MessageListener
{    
    @Resource
    private MessageDrivenContext context;

    //onMessage(Message)
    ...

but does it also work, if i put the resource annotation in an abstract parent class?

@MessageDriven(...)
public class EventMDB extend ParentMDB
{
    //onEvent(Event)
    ...

with

public abstract class ParentMDB implements MessageListener
{
    @Resource
    protected MessageDrivenContext context;

    //onMessage(Message) retrieves object of ObjectMessage and invokes onEvent(Event)

    //abstract void onEvent(Event)
    ...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

彡翼 2024-12-22 21:11:05

我不明白为什么它不起作用(Java EE API ):

即使此注释未标记为 Inherited,部署工具也需要检查任何组件类的所有超类,以发现此注释在所有超类中的所有使用情况。所有此类注释实例都指定应用程序组件所需的资源。请注意,此注释可能出现在超类的私有字段和方法上;在这些情况下容器也需要执行注入。

您是否有一个不起作用的用例,或者您只是在考虑“假设”?

I can't see why it wouldn't work (Java EE API):

Even though this annotation is not marked Inherited, deployment tools are required to examine all superclasses of any component class to discover all uses of this annotation in all superclasses. All such annotation instances specify resources that are needed by the application component. Note that this annotation may appear on private fields and methods of superclasses; the container is required to perform injection in these cases as well.

Do you have a use case when it doesn't work, or are you just contemplating the "what-ifs"?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文