@Ресурс на уровне типа

#java #spring #jsr

#java #весна #jsr

Вопрос:

Я обнаружил, что @Resource также может применяться на уровне класса:

http://docs.oracle.com/javaee/5/tutorial/doc/bncjk.html

Внедрение на основе классов Чтобы использовать внедрение на основе классов, украсьте класс аннотацией @Resource и задайте требуемые элементы name и type .

@Resource(имя =»myMessageQueue», тип =»javax.jms.ConnectionFactory») открытый класс SomeMessageBean { … }

Есть ли у вас какой-либо опыт использования @Resource таким образом?

Комментарии:

1. у вас есть более конкретный вопрос?

2. Что делает ресурс при применении на уровне типа? Я знаю, что вы можете автоматически подключаться по имени, когда размещаете ресурс на уровне поля или метода, но как насчет типа? Можете ли вы объединить его с другими аннотациями (также Resource или другими). Существует много информации о @Resource, но я не могу найти ни одного примера ее использования на уровне класса. Я попытался изучить этот фрагмент кода, но я даже не компилирую.

Ответ №1:

Из ресурса javadoc

Аннотация ресурса отмечает ресурс, который необходим приложению. Эта аннотация может быть применена к классу компонентов приложения или к полям или методам класса компонентов. Когда аннотация применяется к полю или методу, контейнер вводит экземпляр запрошенного ресурса в компонент приложения при инициализации компонента. Если аннотация применяется к классу компонента, в аннотации объявляется ресурс, который приложение будет искать во время выполнения

Это означает, что класс, аннотированный с помощью @Resource на уровне класса, будет рассматриваться как кандидат на автоматическое обнаружение при использовании конфигурации на основе аннотаций и сканирования пути к классу