手工书写spring-beans.xml非常繁琐,而且如果多个程序员同时进行一个项目的时候,即使分成多个spring文件,也很容易会产生冲突,更别说经常遇到的错误和程序升级问题了,还好最新的Xdoclet可以帮助我们解决这个烦恼,在最新的Xdoclet中已经包含了对srping的支持,即srpingdoclet。如下是例子:
1、下载ant,从jakarta.apache.org
安装在c:\dev\ant,安装过程就不详细说了,如果ant都不懂,那看来您有些落伍了,也先别往下看了,学习一下ant先
2、下载xdoclet,当然是xdoclet.sf.net了,下载后把lib的东西放置到
c:\dev\ant\lib\xdoclet
3、java 代码
只是个例子而已
===================================================================
XdocletMain.java :
===================================================================
1、下载ant,从jakarta.apache.org
安装在c:\dev\ant,安装过程就不详细说了,如果ant都不懂,那看来您有些落伍了,也先别往下看了,学习一下ant先
2、下载xdoclet,当然是xdoclet.sf.net了,下载后把lib的东西放置到
c:\dev\ant\lib\xdoclet
3、java 代码
只是个例子而已
===================================================================
XdocletMain.java :
===================================================================
代码: |
/** * Created by IntelliJ IDEA. * User: wangzy * Date: 2004-12-5 * @spring.bean * id="XdocletMain" * singleton="true" * 上述说明,这是个spring的bean,id为XdocletMain,如果看不懂,再补习一下xdoclet * @spring.property * name="bean1" * ref="Bean1" * 上述说明,有个bean1属性,关联的为Bean1的spring组件 * @spring.property * name="bean2" * ref="Bean2" * 同上 */ public class XdocletMain { public Bean1 getBean1() { return bean1; } public void setBean1(Bean1 bean1) { this.bean1 = bean1; } public Bean2 getBean2() { return bean2; } public void setBean2(Bean2 bean2) { this.bean2 = bean2; } private Bean1 bean1 = null; private Bean2 bean2 = null; } |
===================================================================
Bean1.java :
===================================================================
代码: |
/** * Created by IntelliJ IDEA. * User: wangzy * Date: 2004-12-5 * @spring.bean * id="Bean1" * singleton="true" * 声明一个Bean1的spring组件 */ public class Bean1 { } |
===================================================================
Bean2.java :
===================================================================
代码: |
/** * Created by IntelliJ IDEA. * User: wangzy * Date: 2004-12-5 * @spring.bean * id="Bean2" * singleton="true" * 类似Bean1 */ public class Bean2 { } |
===================================================================
下来当然就是最重要的ant的build.xml了,其中相关部分为:
代码: |
<!--这里是xdoclet的lib,这些都不是ant的core包,所以要引进来 --> <path id="xdoclet.class.path"> <fileset dir="c:\dev\ant\lib\xdoclet"> <include name="*.jar"/> </fileset> </path> <!--这里就是生成spring-beans配置了 --> <target name="srpingdoclet"> <!--定义springdoclet task --> <taskdef name="springdoclet" classname="xdoclet.modules.spring.SpringDocletTask" classpathref="xdoclet.class.path" /> <!--这里根据src下的java文件中的信息,生成spring-beans.xml到“spring/spring-beans.xml”文件中--> <springdoclet destdir="spring"> <fileset dir="src" includes="**/*.java" /> <springxml destinationFile="spring-beans.xml" /> </springdoclet> </target> |
运行ant springdoclet,看看spring/spring-beans.xml文件,大功告成!!!
具体详细信息可以看xdoclet文档
代码: |
<?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" > <bean id="Bean1" class="Bean1" singleton="true" > </bean> <bean id="XdocletMain" class="XdocletMain" singleton="true" > <property name="bean1"> <ref bean="Bean1"/> </property> <property name="bean2"> <ref bean="Bean2"/> </property> </bean> <bean id="Bean2" class="Bean2" singleton="true" > </bean> <!-- 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> |