我目前卡住了使用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 {
这是否与我的类扩展超类这一事实有关?或者我只是错误地设置它。关于此的文档几乎不存在,所以任何帮助都将被感激地收到。
由于
答案 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类不同。