Spring 的 Java 配置選項

工程 | Rod Johnson | 2006 年 11 月 28 日 | ...

得益於我們的可插拔理念以及實現上的大量努力,Spring IoC 容器(以及 Spring 的大部分其他元件)具有極高的靈活性。

一個經常被忽視的重點是,Spring 配置不必採用 XML 格式,儘管 XML 格式是迄今為止最常用的。Spring 擁有自己的內部元資料格式,即 BeanDefinition 介面及其子介面。代表 IoC 容器例項的 BeanFactory 和 ApplicationContext 實現由這些 Java 元資料驅動,並且與元資料解析完全分離,而元資料解析是…

Spring 2.0 中的 XML 語法糖

工程 | Rod Johnson | 2006 年 11 月 26 日 | ...

如果你關注了十月份的 Spring 2.0 釋出,你就會知道其中一個重要的新功能是 XML 擴充套件名稱空間:能夠定義新的 XML 元素和屬性,這些元素和屬性可以生成 Spring 元資料,並可以與常規 bean 定義一起使用。這提供了一個有價值的新擴充套件點,使得 Spring 配置對於許多重複性任務來說更易於使用,並且功能更強大。

然而,還有一個你可能沒有注意到的甜蜜小語法糖——這可能是因為 Spring 團隊中沒有人告訴你… 我曾向自己保證…

Spring Framework:專案和名稱的由來

工程 | Rod Johnson | 2006 年 11 月 09 日 | ...

我經常被問及“Spring”這個名稱的由來。

這個名字可以追溯到 2002 年底。2002 年 11 月,我出版了《Expert One-on-One J2EE Design and Development》。這本書附帶了 30,000 行框架程式碼,這佔了我寫書這一年全職工作的大部分時間。(寫一本 750 頁的書本身工作量就很大;同時編寫一個實質性的框架簡直是自虐。那很難。)Spring Framework 的許多基本概念都在其中:一個已經功能強大的 IoC 容器,帶有 BeanFactory 和 ApplicationContext…

最後機會加入澳大利亞的 500 多人

工程 | Ben Alex | 2006 年 11 月 01 日 | ...

如果你正在閱讀本部落格,你很可能已經知道 Spring 是一個相當流行的框架。大多數使用過它的 J2EE 開發人員都非常喜歡它,這體現在 12+ 本書、1,000,000+ 下載量、14,000+ 論壇成員等。儘管如此,當我一週多前宣佈我的澳大利亞 Spring 使用者組會議引起如此大的興趣時,連我自己都感到驚訝… 截至今天,我們已經有超過五百人註冊參加這三次會議。事實上,我們不得不將悉尼會議移至更大的場地,而布里斯班墨爾本的會議也幾乎爆滿。如果你…

Oracle、開源和商品化

工程 | Rod Johnson | 2006 年 10 月 28 日 | ...

我在舊金山參加 Oracle World。我甚至在 Thomas Kurian 關於 Java 中介軟體的主題演講中簡短髮言。但 Neelan 和我不得不在週二離開,錯過了大新聞:Larry Ellison 宣佈 Oracle 將為 Linux 提供支援

從開源業務的角度來看,這是一個有趣的事件。更廣泛的影響是什麼?

Oracle 正在為他們沒有建立和不控制的開源產品提供支援。

這可能是由於多種原因

  • Linux 不是一個產品。它是一類技術,公司或組織負責組裝、文件、分發和支援產品。
  • Linux 支援在一定程度上已經商品化。Red Hat 只是提供支援的幾家分銷商之一。
  • Linux 的領導權是分散的。Linus Torvalds 不為大型分銷商工作;Red Hat 比大多數公司做得更多,但沒有一家公司提供明確的領導。
  • Linux 的領導作用不如你想象的那麼重要。Linux 主要不是創新的引擎,而是商品化的引擎。

然而,思考像 Oracle 這樣的公司在提供…方面的侷限性是很有趣的。

Interface21 / Spring 在 2006 年甲骨文全球大會

工程 | Neelan Choksi | 2006 年 10 月 23 日 | ...

Rod 和我正在舊金山參加 2006 年甲骨文全球大會。這確實是一個盛大的場面。我無法決定“傲慢”還是“令人印象深刻”是描述它的正確方式,但數字不會說謊。他們預計大會將有 45000 人參加,舊金山市認為此次展會將為該市帶來 5000 萬至 6000 萬美元的收入。顯然,任何甲骨文員工都不允許住在機場以北的酒店。更令人震驚的事情之一是,城市為了會議,封閉了莫斯康門前霍華德街的一段路。

在今天上午由 甲骨文高階副總裁 Thomas Kurian 發表的 Oracle Develop 主題演講中,Spring 處於核心位置。Thomas 請 Rod 上臺,在主題演講中描述 Spring 是什麼以及 Spring 2.0 的新特性。Rod 還談到了協作……

Spring 2.0 最終版,首日下載量超過 10,000

工程 | Rod Johnson | 2006 年 10 月 05 日 | ...

Spring 2.0 已於週二釋出最終版!這是 Spring 團隊 9 個月辛勤工作和大量使用者反饋(感謝!)的成果,也是一個巨大的進步。

我保證我的下一篇部落格將不再是關於下載數量的。我一直在嘗試一些有趣的測試 @AspectJ 註解中切入點的方法,所以我希望下次能釋出一些有趣的程式碼。

但我們剛剛注意到 SourceForge 上的一些驚人數字,所以我忍不住要釋出它們。Spring 2.0 在最初的 24 小時內下載量超過 10,000 次!對 Spring 2.0 的興趣已經持續了數月——一些使用者已經在使用釋出候選版進行生產,其中包括歐洲一家著名的媒體網站——我認為Keith 精彩的釋出頁面

Spring 2.0 Maven POMs 已就緒

工程 | Ben Hale | 2006 年 10 月 04 日 | ...

在今天眾多 Spring 2.0 公告中,這是最後一個。Spring 2.0 的 Maven POM 已上傳到 Spring 的私有倉庫。如果你想直接指向它,請檢視https://svn.sourceforge.net/svnroot/springframework/repos/repo/。如果你想等待,它們應該會在接下來的幾天內複製到 Ibiblio Maven 倉庫。

對於那些喜歡瀏覽更多元資料的人來說,SourceForge 的ViewVC 介面是一個不錯的選擇。請記住,你應該使用前一個連結作為 maven 的 URL,但你可以使用後一個連結進行瀏覽。


更新於 10/3 22:03:添加了關於 ViewVC 的段落

利用泛型元資料

工程 | Rob Harrop | 2006 年 09 月 29 日 | ...

我在與客戶交談時經常聽到一個常見的誤解,即所有關於泛型型別的資訊都從 Java 類檔案中被擦除。這完全是錯誤的。所有靜態泛型資訊都會被保留,只有關於單個例項的泛型資訊才會被擦除。所以如果我有一個類 Foo 實現了 List<String>,那麼我可以在執行時確定 Foo 實現了由 String 引數化的 List 介面。然而,如果我在執行時例項化一個 ArrayList<String> 的例項,我不能獲取該例項並確定其具體型別引數(我只能確定 ArrayList 需要型別引數)。在這篇文章中,我將向你展示一些可用的泛型元資料的實際用法,它簡化了根據處理物件型別而不同的策略介面和實現的建立。

我在許多應用程式中看到的一種模式是使用某種策略介面,其具體實現分別處理特定的輸入型別。例如,考慮投資銀行業務中的一個簡單場景。任何上市公司都可以釋出公司行為,從而導致其股票發生實際變化。一個主要例子是股息支付,它按每股向所有股東支付一定數量的現金、股票或財產。在投資銀行內部,接收這些事件的通知並計算由此產生的權益非常重要,以便使交易賬簿與正確的股票和現金價值保持同步。

作為一個具體示例,考慮 BigBank 持有 1,200,000 股 IBM 股票。IBM 決定派發每股 0.02 美元的股息。因此,BigBank 需要接收股息行動的通知,並在適當的時間更新其交易賬簿,以反映額外的 24,000 美元可用現金。

權益的計算將根據執行的公司行動型別而有很大差異。例如,合併很可能導致一家公司的股票損失和另一家公司的股票增加。

如果我們考慮這在 Java 應用程式中可能是什麼樣子,我們可以假設會看到類似(大大簡化)的示例


public class CorporateActionEventProcessor {

    public void onCorporateActionEvent(CorporateActionEvent event) {
        // do we have any stock for this security?

        // if so calculate our entitlements
    }
}

關於事件的通知可能透過多種機制從外部方傳入,然後傳送到這個 CorporateActionEventProcessor 類。CorporateActionEvent 介面可能透過許多具體類實現


public class DividendCorporateActionEvent implements CorporateActionEvent {

    private PayoutType payoutType;
    private BigDecimal ratioPerShare;

    // ...
}

public class MergerCorporateActionEvent implements CorporateActionEvent {

    private String currentIsin; // security we currently hold
    private String newIsin; // security we get
    private BigDecimal…

波士頓 Spring 小組首次會議

工程 | Mark Fisher | 2006 年 09 月 25 日 | ...

我非常激動地宣佈,新英格蘭 Java 使用者組 (New England Java Users Group) 內的 Spring SIG 將於本週四(2006 年 9 月 28 日)舉行首次會議。Ramnivas Laddad(《AspectJ in Action》作者和 Interface21 首席工程師)將發表題為“AspectJ for Spring Developers”的演講。這將是瞭解 Spring 2.0 中 AspectJ 整合增強功能的好機會。

你可以在此處閱讀詳細資訊,如果你打算參加,請務必點選頁面左側的“註冊”連結。

這個小組將為“所有與 Spring 相關的事物”提供一個很棒的論壇,最初大約每季度開會一次。我期待著建立一個社群,並親自會見波士頓地區的 Spring 使用者。

特別感謝 NEJUG 主席 Steven Maienza 和 NEJUG 成員,他們表達了組建 Spring 小組的興趣,並在我搬到波士頓之前就將其付諸實施。謝謝!

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有