@ Resource-annotation в абстрактном родительском классе MessageDrivenBeans? - PullRequest
1 голос
/ 14 ноября 2011

это нормально

@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)
    ...

1 Ответ

1 голос
/ 14 ноября 2011

Я не понимаю, почему это не сработает ( Java EE API ):

Даже если эта аннотация не помечена как унаследованная, инструменты развертывания необходимы для проверки всех суперклассов любого класса компонентов, чтобы обнаружить все варианты использования этой аннотации во всех суперклассах. Все такие экземпляры аннотаций указывают ресурсы, которые необходимы компоненту приложения. Обратите внимание, что эта аннотация может появляться в приватных полях и методах суперклассов; контейнер также необходим для инъекции в этих случаях.

Есть ли у вас сценарий использования, когда он не работает, или вы просто размышляете "что, если"?

...