#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 на уровне класса, будет рассматриваться как кандидат на автоматическое обнаружение при использовании конфигурации на основе аннотаций и сканирования пути к классу