原创 OpenSessionInView的優缺點

概念:在hibernate中使用load方法時,並未把數據真正獲取時就關閉了session,當我們真正想獲取數據時會迫使load加載數據,而此時 session已關閉,所以就會出現異常。 比較典型的是在MVC模式中,我們在M層調用持久層

原创 connection、HttpSession、hibernate中的session、transaction

connection和HttpSession的區別 session(會話)和connection(連接)的定義: connection:是一個物理的概念,它指的是一個通過網絡建立的客戶端和專有服務器(Dedicated Server)或

原创 輕鬆實現線程生命週期內的Session管理

/** * 藉助Servlet2.3規範中新引入的Filter機制,輕鬆實現線程生命週期內的Session管理(關於Filter的具體描述,請參考Servlet2.3規範)。 * Filter的生命週期貫穿了其所覆蓋的Servlet(

原创 Java 熱部署

何爲熱部署(hotswap) 熱部署是在不重啓 Java 虛擬機的前提下,能自動偵測到 class 文件的變化,更新運行時 class 的行爲。Java 類是通過 Java 虛擬機加載的,某個類的 class 文件在被 classload

原创 秒殺系統架構設計

技術挑戰 1. 對原有業務形成衝擊 秒殺活動只是網站營銷的一個附加活動,特點是:時間短、併發訪問量大,如果和網站原有應用部署在一起,必然會對現有業務造成衝擊。 解決方案:將秒殺系統獨立部署,甚至使用獨立域名,使其與網站完全隔離。 2.

原创 系統負載能力

一. 衡量指標 用什麼來衡量一個系統的負載能力呢?有一個概念叫做每秒請求數(Requests per second),指的是每秒能夠成功處理請求的數目。比如說,你可以配置tomcat服務器的maxConnection爲無限大,但是受限

原创 JAR文件中的META-INF文件夾

根據官方的JAR file specification(), 一個典型的META-INF目錄下可能包含如下幾種文件或者子目錄:    MANIFEST.MFINDEX.LISTx.SFx.DSA services/ META-INF

原创 命令模式

定義 將請求封裝成對象,這可以讓你使用不同的請求、隊列,或者日誌請求來參數化其他對象。命令模式也可以支持撤銷操作。 優點 1、命令模式的封裝性很好:每個命令都被封裝起來,對於客戶端來說,需要什麼功能就去調用相應的命令,而無需知道命

原创 where和having的區別

1、where是在分組前進行過濾,having是在分組後進行過濾 2、where子句中不能有分組函數,having可以 group by要點: group by子句中的字段可以不出現在select字句中 如果使用了分組函數,或使用grou

原创 mysql select in 按照in後面id的順序讀取數據

select * from table_name where id in ()的時候,MySQL會自動按主鍵自增排序,要是按給定的順序來取,如何實現呢? select * from table_name where id in (12

原创 裝飾器模式(Decorator)

設計原則 1、類應該對擴展開發,對修改關閉。 特點: 1、裝飾對象和真實對象有相同的接口。這樣客戶端對象就可以以和真實對象相同的方式和裝飾對象交互。 2、裝飾對象包含一個真實對象的引用(reference)。 3、裝飾對象接收所有來自客戶

原创 簡單工廠模式

簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static FactoryMethod Pattern),是通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類

原创 抽象工廠模式

優點: 1、抽象工廠模式隔離了具體類的生產,使得客戶並不需要知道什麼被創建。 2、當一個產品族中的多個對象被設計成一起工作時,它能保證客戶端始終只使用同一個產品族中的對象。 3、增加新的具體工廠和產品族很方便,無須修改已有系統,符

原创 適配器(Adapter)模式

定義 將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以在一起工作。 優點 1、將目標類和適配者類解耦 2、增加了類的透明性和複用性,將具體的實現封裝在適配者類中,對於

原创 play framework中plugins和enhancers

D:\tools\play-1.3.1\framework\src\play.plugins文件: play.CorePlugin @Override public void enhance(ApplicationClass a