手工書寫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 :
===================================================================
代碼:
|
/** ?* 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>
|