Spring技巧之簡潔配置(轉)
Spring2.0在配置上調整了不少地方,增加更加靈活、簡潔的配置方式,本文通過兩個簡單的示例來演示。??????配置Apache的一個數據源連接池,在Spring?2.0以前的版本中,我們可以使用類似下面的配置:
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean?id="dataSource"
??class="org.apache.commons.dbcp.BasicDataSource"
??destroy-method="close">
??<property?name="driverClassName">
???<value>org.gjt.mm.mysql.Driver</value></property>
??<property?name="url">
???<value>jdbc:mysql://127.0.0.1:3306/easyjf-bbs</value>?</property>
??<property?name="username"><value>root</value>?</property>
??<property?name="password"><value>mypass</value></property>
?</bean>
</beans>?
??????在Spring2.0中,可以把<value>及<ref>兩個標簽作為其父級<bean>標簽的一個屬性來定義,這樣使得配置文件更加簡潔,如下所示:
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean?id="dataSource"
??class="org.apache.commons.dbcp.BasicDataSource"
??destroy-method="close">
??<property?name="driverClassName"
???value="org.gjt.mm.mysql.Driver"?/>
??<property?name="url"
???value="jdbc:mysql://127.0.0.1:3306/easyjf-bbs"?/>
??<property?name="username"?value="root"?/>
??<property?name="password"?value="mypass"?/>
?</bean>
</beans>
??????另外,Spring2.0中還有一個非常實用的解析器,SimplePropertyNamespaceHandle,若配置文件中引用http://www.springframework.org/schema/p命令空間,則將會使用SimplePropertyNamespaceHandle來處理這個Bean的定義,可以在Spring2.0中的Bean中以更簡單的方式配置設值方法注入,如下所示:
<?xml?version="1.0"?encoding="UTF-8"?>
<beans?xmlns="http://www.springframework.org/schema/beans"
?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?xmlns:p="http://www.springframework.org/schema/p"
?xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean?id="dataSource"
??class="org.apache.commons.dbcp.BasicDataSource"?destroy-method="close"
??p:driverClassName="org.gjt.mm.mysql.Driver"
??p:url="jdbc:mysql://127.0.0.1:3306/easyjf-bbs"?p:username="root"?p:password="mysql"?/>
</beans>
在上面的配置中,使用p:url則可以直接注入BasicDataSource的url屬性值,可以使用p:url-ref屬性來引用另外一個Bean。
????如,Spring2.0以前的一個DAO配置:
<bean?id="userDao"?class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc">
???????<property?name="dataSource"><ref?bean="dataSource"/></property>
???</bean>??
??使用簡短屬性方式,則改成如下:
<bean?id="userDao"?class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc"?p:dataSource-ref="dataSource"?/>
Spring2.0比以前的版本配置更加靈活、簡潔,如果手工書寫配置,則比較實用。當然,老的配置方式有很多開發工具如MyEclipse等都能識別,不需要我們動手一點一點的錄入配置文件,大多數工具對新的配置方式還不能識別,因此,請根據實際情況酌情使用。
由于水平有限,文中不足之處歡迎廣大Spring愛好者不吝指教,請“春迷”勿攏!?
posted on 2007-01-11 15:00 liaojiyong 閱讀(295) 評論(0) 編輯 收藏 所屬分類: Spring