我现在坚持使用Spring2.0.8(仍在等待升级的批准),因为我不能使用注释,尽管我会使用xdoclet为将来要编写的大量bean生成bean配置文件。
但是,当我运行ant目标时,它会创建xml文件,但不包含任何bean标记。
我的ant脚本如下所示:
<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>正如您所看到的,没有设置任何been。
我的bean类都继承自同一源目录中的父类。MasterBean的设置如下:
/**
*
*@spring.bean id="master"
*/
abstract public class Master implements Rule {
..
..
}和一个样例子类(在相同的包中,设置如下:
/**
*
* @spring.bean id="G27"
*/
public class Global27_IncorrectFormTypeForCA extends Master {这与我的类扩展超类的事实有关吗?或者我只是把它设置得不正确。关于这方面的文档几乎不存在,因此如果有任何帮助,我们将不胜感激。
谢谢
发布于 2011-05-19 22:50:54
我在使用XDoclet和fileset子任务时遇到了一些问题,如果我将dir属性设置为src/java/my/pacakge/some/package(如src/java/my/pacakge/some/package),它将无法工作,而将其设置为src/java则可以正常工作。
我知道XDoclet可以从带有超类的类生成Spring bean。我的项目的所有bean都扩展了其他类,但是它们的超类不是bean本身,也就是说没有@spring.bean,它们都是正确生成的。我不确定这是不是一个问题,但是既然你的Master类是抽象的,它需要被定义为Spring bean吗?Spring确实有abstract bean的概念,但它不同于抽象的Java类。
https://stackoverflow.com/questions/5569443
复制相似问题