Xdoclet @ spring.bean没有正确生成配置文件

时间:2011-04-06 15:59:52

标签: spring xdoclet

我目前卡住了使用Spring 2.0.8(仍在等待升级的签名),因为我无法使用注释我虽然我会使用xdoclet为大量的bean生成bean配置文件我会写在将来。

但是,当我运行我的ant目标时,它会创建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 :(得分:0)

我在XDoclet和文件集子任务方面遇到了一些问题,如果我将dir属性设置为深度(如src/java/my/pacakge/some/package)则不起作用,将其设置为src/java工作正常。

我知道XDoclet可以从具有超类的类生成Spring bean。我的所有项目的bean都扩展了其他类,但是它们的超类本身不是bean,即没有@spring.bean,它们都是正确生成的。我不确定这是否有问题,但由于您的Master类是抽象的,是否需要将其定义为Spring bean? Spring确实具有abstract bean的概念,但它与抽象Java类不同。