1. 程式人生 > >學spring之xmlns配置之名稱空間

學spring之xmlns配置之名稱空間

在application-context.xml檔案中配置分為 2.5 和3.0的

xmlns:tx="http://www.springframework.org/schema/tx"   其中:tx中tx是"http://www.springframework.org/schema/tx"這個名稱空間的簡稱,"http://www.springframework.org/schema/tx"是名稱空間的全稱必須在xsi名稱空間為基本指定對應的schema檔案

 <!--2.5版本的配置-->
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"<!--為預設名稱空間-->

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <!--xsi為標準名稱空間用於指定自定義名稱空間的schema檔案-->xmlns:p="http://www.springframework.org/schema/p"<!-- -->
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
     http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
">

</beans>

在為每個名稱空間指定了對應的Schema文件的時候,定義的語法為

xsi:schemaLocation="全稱名稱空間1  空格  全稱名稱空間1對應的Schema檔案空格  全稱名稱空間2  空格  全稱名稱空間2對應的Schema檔案 空格  全稱名稱空間3  空格  全稱名稱空間3對應的Schema檔案   。。。。。。。"

------------------------------------3.0----------------------------

<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

</beans>

若配置檔案中引用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" />