Spring學習篇 IoC知識整理 二

2022-02-07 21:05:08 字數 2289 閱讀 8738

2.利用messagesource實現國際化(i18n):

spring目前提供了兩個messagesource的實現:resourcebundlemessagesourcestaticmessagesource。它們都繼承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.propertiesformat_en_us.propertieswindows.properties)(注:我這裡使用到了國際化,所以format定義了兩個properties,在測試類中通過指定locale設定的屬性自動去尋找對應的國際化資源)。

三個屬性檔案(format_zh_cn.propertiesformat_en_us.propertieswindows.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

the arguments datasource

default is required!

因為這裡使用了國際化,如果我將string message = source.getmessage("message", null

, locale.us);改為string message = source.getmessage("message", null

, locale.china);時,console輸出結果如下:

你好

the arguments datasource

default is required!

ioc我覺得要注意的是這些,其實spring官方文件對ioc眾多注意事項和特性有深入詳解,用到時可以隨時查閱。

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...