<a href="http://www.cnblogs.com/dongying/p/4036796.html">深入淺出mybatis系列(三)---配置詳解之properties與environments(mybatis源碼篇)</a>
為了讓大家能夠更好地閱讀mybatis源碼,我先簡單的給大家示例一下properties的使用方法。


那麼,我要是 兩種方法都同時用了,那麼哪種方法優先?
當以上兩種方法都xml配置優先, 外部指定properties配置其次。至于為什麼,接下來的源碼分析會提到,請留意一下。
再看一下envirements元素節點的使用方法吧:


environments元素節點可以配置多個environment子節點, 怎麼了解呢?
假如我們系統的開發環境和正式環境所用的資料庫不一樣(這是肯定的), 那麼可以設定兩個environment, 兩個id分别對應開發環境(dev)和正式環境(final),那麼通過配置environments的default屬性就能選擇對應的environment了, 例如,我将environments的deault屬性的值配置為dev, 那麼就會選擇dev的environment。 至于這個是怎麼實作的, 下面源碼就會講。
好啦,上面簡單給大家介紹了一下properties 和 environments 的配置, 接下來就正式開始看源碼了:
上次我們說過mybatis 是通過xmlconfigbuilder這個類在解析mybatis配置檔案的,那麼本次就接着看看xmlconfigbuilder對于properties和environments的解析:
xmlconfigbuilder:


通過以上對mybatis源碼的解讀,相信大家對mybatis的配置又有了一個深入的認識。
還有一個問題, 上面我們看到,在配置datasource的時候使用了 ${driver} 這種表達式, 這種形式是怎麼解析的?其實,是通過propertyparser這個類解析:
propertyparser:


好啦,以上就是對于properties 和 environments元素節點的分析,比較重要的都在對于源碼的注釋中标出。本次文章到此結束,接下來的文章會繼續分析其他節點的配置。