Xdoclet @ spring.bean не генерирует файл конфигурации должным образом - PullRequest
0 голосов
/ 06 апреля 2011

В данный момент я застрял с помощью Spring 2.0.8 (все еще ожидаю выхода при обновлении), так как не могу использовать аннотации. Хотя я бы использовал xdoclet для генерации файла конфигурации для большого количества компонентов, которые я буду использовать писать в будущем.

Однако, когда я запускаю свою цель муравья, он создает файл XML, но он не содержит никаких тегов bean.

Мой скрипт муравья выглядит так:

<taskdef name="springdoclet" classname="xdoclet.modules.spring.SpringDocletTask">
    <classpath refid="springdoclet.classpath"/>
</taskdef>

<taskdef name="doclet" classname="xdoclet.DocletTask">
    <classpath refid="springdoclet.classpath"/>
</taskdef>

<target name="generate-spring-wiring">
    <springdoclet destdir="${resource.dir}" excludedtags="@version,@author,@todo">
        <fileset dir="${global.src.dir}"/>
        <springxml destinationfile="spring-wiring.xml"/>
    </springdoclet>

</target>

Полученный XML-файл выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans
default-autowire="no"
default-lazy-init="false"
default-dependency-check="none"
>

<!--
 To include additional bean definitions for Spring in the generated
 application context file, add a file to your XDoclet merge directory
  called spring-beans.xml that contains the <bean></bean> markup.
-->

</beans>

Как видите, бины не настроены.

Все мои классы bean-компонентов наследуются от родительского класса, который находится в том же исходном каталоге MasterBean был настроен следующим образом:

/**
 *
 *@spring.bean id="master"
 */
 abstract public class Master implements Rule {

 ..
 ..
 }

И пример дочернего класса (в том же пакете настраивается следующим образом:

/**
*
* @spring.bean id="G27"
*/
public class Global27_IncorrectFormTypeForCA extends Master {

Это как-то связано с тем, что мои классы расширяют суперкласс? Или я просто неправильно его настраиваю. Документации по этому вопросу практически не существует, поэтому любая помощь будет с благодарностью получена.

Спасибо

1 Ответ

0 голосов
/ 19 мая 2011

У меня были некоторые проблемы с XDoclet и подзадачей наборов файлов, если я установил для атрибута dir значение deep (например, src/java/my/pacakge/some/package), это не сработало бы, установка его на src/java работала нормально.

Я знаю, что XDoclet может генерировать бины Spring из классов с суперклассом.Все бины моего проекта расширяют какой-то другой класс, но их суперкласс не является самим бином, т.е. не @spring.bean, и все они генерируются правильно.Я не уверен, что это проблема, но поскольку ваш мастер-класс является абстрактным, нужно ли его определять как бин Spring?У Spring есть концепция абстрактного компонента , но это не то же самое, что абстрактный класс Java.

...