位置:首頁 > Java技術 > MyBatis教學 > properties元素

properties元素

它們都是外部化,可替代的屬性。可以配置在一個典型的Java 屬性文件中,或者通過 properties 元素的子元素進行配置。例如:

<properties resource="org/mybatis/example/config.properties"> 
    <property name="username" value="dev_user"/> 
    <property name="password" value="F2Fa3!33TYyg"/> 
</properties> 
在整個配置文件中,這些屬性能夠被可動態替換(即使用占位符)的屬性值引用,例如:

<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
示例中的username 和password 將會被替換為配置在properties 元素中的相應值。driver 和url 屬性則會被config.properties 文件中的相應值替換。這裡提供了大量的配置選項。 這些屬性也可以傳遞給sqlSessionFactoryBuilder.build()方法。例如:

SqlSessionFactory factory =
sqlSessionFactoryBuilder.build(reader, props);
// ... or ...
SqlSessionFactory factory =
sqlSessionFactoryBuilder.build(reader, environment, props);

如果一個屬性存在於多個地方,MyBatis 將使用下麵的順序加載: •首先讀入properties 元素主體中指定的屬性。
然後會加載類路徑或者properties 元素中指定的url 的資源文件屬性。它會覆蓋前麵已 經讀入的重複屬性。
通過方法參數來傳遞的屬性將最後讀取(即通過sqlSessionFactoryBuilder.build),同樣也 會覆蓋從properties 元素指定的和resource/url 指定的重複屬性。
因此最優先的屬性是通過方法參數來傳遞的屬性,然後是通過resource/url 配置的屬性,最 後是在MyBatis 的Mapper 配置文件中,properties 元素主體中指定的屬性。