原创 Hibernate性能調優--集合屬性的延遲加載

Hibernae的延遲加載是一個非常常用的技術,實體的集合屬性默認會被延遲加載,實體所關聯的實體默認也會被延遲加載。Hibernate通過這種延遲加載來降低系統的內存開銷,從而保證 Hibernate 的運行性能。 下面先來剖析Hiber

原创 Hibernate性能調優--關聯實體的延遲加載

默認情況下,Hibernate也會採用延遲加載來加載關聯實體,不管是一對多關聯、還是一對一關聯、多對多關聯,Hibernate 默認都會採用延遲加載。 對於關聯實體,可以將其分爲兩種情況: 關聯實體是多個實體時(包括一對多、多對多):

原创 Maven實戰(七,八)——常用Maven插件介紹

我們都知道Maven本質上是一個插件框架,它的核心並不執行任何具體的構建任務,所有這些任務都交給插件來完成,例如編譯源代碼是由maven-compiler-plugin完成的。進一步說,每個任務對應了一個插件目標(goal),每個插件會

原创 選擇Redis作爲分佈式緩存

           高校平臺項目中分佈式緩存使用的是Redis,在以前也曾經使用過Memcached,但使用Memcached和mysql配合遇到過一些問題。           當然實際中Mysql是適合海量數據存儲的,然後通過Mem

原创 RPC基礎

分佈式的技術越來越成熟,而RPC在其中扮演着不可或缺的角色,我們平時直接或者隱式的用RPC但是很多人並不一定清楚的理解什麼事RPC   RPC 是什麼? RPC 的全稱是 Remote Procedure Call 是一種進程間通

原创 Maven實戰(四)——基於Maven的持續集成實踐

Martin的《持續集成》 相信很多讀者和我一樣,最早接觸到持續集成的概念是來自Martin的著名文章《持續集成》,該文最早發佈於2000年9月,之後在2006年進行了一次修訂,它清晰地解釋了持續集成的概念,並總結了10條實踐,它們分

原创 RPC提高

RPC 結構拆解 如下圖所示。 RPC 服務方通過 RpcServer 去導出(export)遠程接口方法,而客戶方通過 RpcClient 去引入(import)遠程接口方法。客戶方像調用本地方法一樣去調用遠程接口方法,RP

原创 Spring監管下的Hibernate配置文件

今天看了看別人的程序,用的是SSH搭建的,自己回想了下感覺如果採用註解的話那麼Hibernate的配置文件hibernate.cfg.xml是還需要的,而*.hbm.xml則可以被註解所替代的,結果確是我沒有找到我想要的hibern

原创 Redis的持久化機制

Redis由於支持非常豐富的內存數據結構類型,如何把這些複雜的內存組織方式持久化到磁盤上是一個難題,所以Redis的持久化方式與傳統數據庫的方式有比較多的差別,Redis一共支持四種持久化方式,分別是: 定時快照方式(snapshot)

原创 Maven實戰(五)——自動化Web應用集成測試

自動化集成測試的角色 本專欄的上一篇文章講述了Maven與持續集成的一些關係及具體實踐,我們都知道,自動化測試是持續集成必不可少的一部分,基本上,沒有自動化測試的持續集成,都很難稱之爲真正的持續集成。我們希望持續集成能夠儘早的暴露問題

原创 Maven實戰(九)——打包的技巧

“打包“這個詞聽起來比較土,比較正式的說法應該是”構建項目軟件包“,具體說就是將項目中的各種文件,比如源代碼、編譯生成的字節碼、配置文件、文檔,按照規範的格式生成歸檔,最常見的當然就是JAR包和WAR包了,複雜點的例子是Maven官方下

原创 SOA概念解惑

什麼是SOA? SOA代表了面向服務的架構。SOA是一種使用鬆耦合的黑盒子服務構建業務應用的體系架構,這些服務可以通過編排連接在一起以實現特定的功能。   什麼是SOA的服務? 在現實世界中,服務是一種我們花費購買到的一種預期的服務

原创 Maven實戰(三)——多模塊項目的POM重構

在本專欄的上一篇文章POM重構之增還是刪中,我們討論了一些簡單實用的POM重構技巧,包括重構的前提——持續集成,以及如何通過添加或者刪除內容來提高POM的可讀性和構建的穩定性。但在實際的項目中,這些技巧還是不夠的,特別值得一提的是,實際

原创 SQL到NoSql

隨着web2.0的快速發展,非關係型、分佈式數據存儲得到了快速的發展,它們不保證關係數據的ACID特性。 NoSQL被我們用得最多的當數key-value存儲,當然還有其他的文檔型的、列存儲、圖型數據庫、xml數據庫等。在NoSQL概

原创 Maven實戰(二)——POM重構之增還是刪

重構是廣大開發者再熟悉不過的技術,在Martin Fowler的《重構——改善既有代碼的設計》一書中,其定義爲“重構(名詞):對軟件內部結構的一種調整,目的是在不改變軟件之可察行爲前提下,提高其可理解性,降低其修改成本.”以及“重構(動