2.利用messagesource實現國際化(i18n):
spring目前提供了兩個messagesource
的實現:resourcebundlemessagesource
和staticmessagesource
。它們都繼承nestingmessagesource
以便能夠處理巢狀的訊息。staticmessagesource
很少被使用,但能以程式設計的方式向訊息源新增訊息。我們基本上都是用resourcebundlemessagesource來例項化bean。如下**:
<屬性引用多個資源檔案;而bean
id="messagesource"
class
="org.springframework.context.support.resourcebundlemessagesource"
>
<
property
name
="basenames"
>
<
list
>
<
value
>format
value
>
<
value
>window
value
>
list
>
property
>
bean
>
basenames
屬性值由list元素所指定的三個值傳入,它們以檔案的形式存在並被放置在classpath的根目錄下(分別為format_zh_cn.properties
,format_en_us.properties
和windows.properties
)(注:我這裡使用到了國際化,所以format定義了兩個properties,在測試類中通過指定locale設定的屬性自動去尋找對應的國際化資源)。
三個屬性檔案(format_zh_cn.properties
,format_en_us.properties
和windows.properties
)**如下:
# format_zh_cn.properties測試類**如下:message=你好
# format_en_us.properties
message=hello world
# window.properties
//這裡使用了兩個佔位符和,在使用時通過object傳值進去
message2=the arguments is required\!
string message = source.getmessage("message", null
, locale.us);
system.out.println(message);
//object陣列裡面可以存放若干個元素,屬性檔案中有幾個佔位符,就按順序自動為佔位符附上值
string message2 = source.getmessage("message2", new object, "default", null
);
system.out.println(message2);
console輸出結果如下:
hello world因為這裡使用了國際化,如果我將string message = source.getmessage("message", nullthe arguments datasource
default is required!
, locale.us);改為string message = source.getmessage("message", null
, locale.china);時,console輸出結果如下:
你好ioc我覺得要注意的是這些,其實spring官方文件對ioc眾多注意事項和特性有深入詳解,用到時可以隨時查閱。the arguments datasource
default is required!
Spring學習篇 IoC知識整理 二
2.利用messagesource實現國際化 i18n spring目前提供了兩個messagesource的實現 resourcebundlemessagesource和staticmessagesource。它們都繼承nestingmessagesource以便能夠處理巢狀的訊息。staticm...
Spring之IOC容器篇
ioc inversion of control 控制反轉的英文縮寫 依賴物件的獲得被反轉了,一般是通過di dependency injection 依賴注入 來實現的,可以大大降低類之間的耦合度。ioc di是spring等框架的核心,或者說是基石,如果沒有ioc容器 di就沒有spring等框...
Spring學習筆記 IoC
getbean 方法 引數為class時要保證配置檔案中bean唯一 構造器注入 通過constructor arg節點注入 工廠方法注入 很少使用 繼承 通過在bean中新增屬性parent指定繼承的父bean,也可以忽略父 bean 的 class 屬性,此時 abstract屬性 必須設為 t...