Как заменить аннотацию @Resource на Java 1.4-совместимую версию - PullRequest
3 голосов
/ 14 июня 2010

У меня есть тестовый класс, который имеет аннотацию @Resource для сеттера, и мне нужно сделать его совместимым с Java 1.4, поэтому, очевидно, аннотация должна идти. Я использую Spring.

Итак, как бы я заменил что-то вроде @Resource ("my.resource"), чтобы установщик получил правильное внедрение зависимостей? Нужно ли мне сделать bean-компонент в XML-файле?

Я довольно новичок в этом, поэтому, если я не предоставляю достаточно информации, дайте мне знать.

Ответы [ 3 ]

4 голосов
/ 14 июня 2010

Если вы находитесь в среде Java 1.4, вы не можете полагаться на аннотации, как вы уже правильно упомянули. Поэтому вы должны объявить зависимости и определения bean-компонентов внутри вашего XML-документа, который настраивает ваш Spring ApplicationContext.

<bean id="myBeanName" class="my.package.MyClass">
   <!-- injects otherBean into propertyName -->
   <property name="propertyName" ref="otherBean" />

   <!-- injects propertyValue into otherProperty -->
   <property name="otherProperty" value="propertyValue" />

   <!-- injects an instance of an anonymous bean into innerBean -->
   <property name="innerBean">
       <bean class="my.package.InnerBean" />
   </property>
</bean>

<bean id="otherBean" class="my.package.OtherBean" />
1 голос
/ 14 июня 2010

Рассмотрим xdoclet ?

XDoclet действительно предшествовал тому, что стало аннотациями в Java 5. Это библиотека с открытым исходным кодом, которая позволяет программирование на основе атрибутов для Java посредством вставкиспециальных тегов Javadoc.Он поставляется с библиотекой предопределенных тегов, которые упрощают кодирование для различных технологий: Java EE, веб-сервисов, портлетов и т. Д.

0 голосов
/ 14 июня 2010

Хакерский способ сделать это - реализовать интерфейс ApplicationContextAware, а затем получить bean-компонент с использованием ApplicationContext.getBean внутри setApplicationContext в вашем классе.

http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/context/ApplicationContextAware.html

...