Time of Update: 2018-12-05
從MVC模型看設計一己薄劍
Time of Update: 2018-12-05
在Singlenton這種模式下,當一個服務第一次被請求的時候,這個服務的一個代理將會被產生。產生的這個代理實現了與實際服務相同的介面(也可以是對象),並且在服務介面的方法在第一次被調用的時候實際的服務物件(包括服務的實作類別,攔截機,對別的服務的引用等)才會真正被建立。
Time of Update: 2018-12-05
支援自訂資料格式是HiveMind的又一大特色。通過<schema>元素,可以為配置擴充點,服務或攔截器的參數定值格式。而且隨著HiveMind的自身發展,Schema所支援內容也會越來越豐富。現階段schema僅支援對一系列element做處理,通過它可以把由它指定的xml檔案片段解析成一個對象或對象的集合。
Time of Update: 2018-12-05
附著到一個控制台 一個進程可以使用 AttachConsole 函數來附著到一個控制台上,一個進程只能附著一個控制台。 一個控制台可以有許多進程附著到它上面,調用 GetConsoleProcessList 函數可以得到附著到一個控制台的列表。 關閉一個控制台 進程可以使用 FreeConsole 函數來將其自身從一個控制台脫離出來。如果其他進程共用這個控制台,控制台不會被銷毀,但調用 FreeConsole 函數的進程不能在使用它了,在進程調用 FreeConsole 之後,它可以使用
Time of Update: 2018-12-05
一般情況下,單例模式(singleton or primitive service models)足夠使用。在有些情況下,服務需要保留某些詳細狀態。狀態和多線程是沒有聯絡的,所以與線程綁定的服務模型在需要的時候會建立一個服務執行個體並把它綁定到當前線程中去。執行個體一但建立就會一直綁定線上程中直到現成消亡。一個服務執行個體唯一對應於綁定的線程並且只能從綁定線程中訪問。
Time of Update: 2018-12-05
作者:肖文鵬 JBoss是一個開放源碼的EJB伺服器,它與其它伺服器整合後可以提供一個完整的J2EE平台。本文介紹如何在Linux環境下安裝和配置JBoss,以及如何在JBoss平台上實現EJB的開發和部署。 作為J2EE架構中最重要的構件,EJB是實現伺服器端分散式運算的核心。EBJ伺服器是EJB的容器,它控制著EJB的運行,並為其提供交易處理、資料庫訪問、安全控制等一系列系統級的服務。 EJB伺服器是J2EE應用伺服器的一個重要組成部分。Sun公司的J2EE
Time of Update: 2018-12-05
激動人心的時刻到了,聽,皇家的號角已經響起,皇家的術士--XSL--出場了!! 講起xsl(eXtensible Stylesheet Language),我忍不住又要把html拉出來了(反正它也習慣了^^),在html中,有許多簡單易懂的標記用來顯示資料內容,比如我們可以通過<h1>,<font color>等來設定資料內容的顯示格式,而且這些標記通過名稱就可以很容易的判斷出用途,但是.誰叫它天生就是用來顯示資料資訊的呢?不過我們的XML就不能這樣了,天生就是用來儲存和發送資料資訊的(勞累
Time of Update: 2018-12-05
很多情況下需要將一個用字串代表的屬性轉化成特定的對象,比如說Boolean,Integer或Date。HiveMind通過Translator完成這項工作,可以在<attribute>或<element>裡面聲名一個Translator。
Time of Update: 2018-12-05
最近番茄花園的討論很火 我也說兩句 ================== 盜版XP火,死掉的不是Microsoft,而是Red Flag 盜版Office火,死掉的不是Microsoft,而是Kingsoft ================== Kingsoft做了那麼多年WPS,終於,在前幾年全面改做網路遊戲 還不是因為被盜版Office擠壓的沒有生存空間 ================== 難道你們這些愛國者就指望著網路遊戲來振興中華呢?
Time of Update: 2018-12-05
終於搬完家了,現在程式的基本介面已經基本上完成了,剩下的是函數的設計代碼部分了,本來打算設計成互動模式的,就是做成個小遊戲,現在看來還是先把核心的部分搞好後看情況而定了,有時間就搞。 設計介面的時候碰到了了個小麻煩。就是隨機產生4個數的問題My Code為這樣的:void CMy24pointDlg::OnStart() { // TODO: Add your control notification handler code here //產生4個隨機數 for(int
Time of Update: 2018-12-05
好久沒寫blog了,今天來發現朋友說我好久沒寫了,也該寫寫東西。是呀,是該寫些東西,不為別人,也為自己。畢業半年了,就剛工作的前三個月生活工作比較積極,每天腦子裡就是程式,那時的感覺多好,對未來充滿了信心,讓我有種一心唯讀聖賢書,兩耳不聞窗外事的感覺,感覺很好。但似乎人都有一種墮落的慾望,想要借墮落來釋放慾望,滋潤慾望。而當你空虛的時候這種慾望就會慢慢滋生,然而一開始就很難罷手,所謂“越墮落就越快樂”應該為“越墮落就越想墮落,越想從墮落獲得快樂”,但哪裡的快樂,只有更無盡的空虛和之後一次又一次的
Time of Update: 2018-12-05
基於池的服務模型和與線程綁定的服務模型是非常象的。一個服務的執行個體會和一個特定的線程綁定,直到這個線程消亡(或者只是清空資料)。和與線程繫結模式不同的是,服務執行個體並不會被拋棄,會重新放入池中供之後的請求使用並與新的線程綁定。 和與線程綁定的模型一樣,所有的綁定與取消綁定都是由自動產生的代理類完成的,使用者代碼不需要涉及這些。 核心服務執行個體可以實現RegistryShutdownListener介面,接收最後清空的回調訊息(像單例的服務模型一樣)。
Time of Update: 2018-12-05
在早一點的版本裡面Tapestry並沒有採用幽雅的格式來產生URLs。這種格式的URLs帶來了不少的問題。比方說,因為整個串連都是圍繞一個servlet構造的,所以勢必會使基於路徑的申明式J2EE安全機制不能使用。再比方說,依靠參數來區分頁面,就會使搜尋引擎只能看到應用程式的極小的一部分頁面。 從4.0
Time of Update: 2018-12-05
最簡單的服務模式就是primitive service model。在這種模式下服務在第一次應用的時候就會被建立。這種建立方法對與服務工廠,攔截器工廠和一些由hivemind.module提供的基本服務是很合適的。 在使用者代碼裡面很少需要使用到這種模式。它主要是為了支援hivemind module自身的服務存在的(單例模式服務就是建立在幾個由簡單模式建立的服務基礎上的)。 簡單模式的服務建立很簡單,只包括建立核心服務和在必要時產生攔截器。核心服務的產生由指定的產生器完成,
Time of Update: 2018-12-05
tapestry-prop介紹 它是一個為Tapestry4.0編寫的擴充包,提供了一個新的綁定首碼"prop:"。這個首碼用於擷取頁面或組件的屬性。 看上去和Tapestry內建的"ognl:"首碼沒有什麼區別,但是低層實際擷取資料的方法和OGNL是完全不同的。它採用了位元組碼產生的方式去擷取使用者類中的那些可以通過名字擷取的屬性。 "prop:"首碼只能擷取簡單屬性或者由路徑代表的屬性(一串用點號隔開的屬性名稱)。比方說 "prop:userName" 或
Time of Update: 2018-12-05
配置擴充點是HiveMind的一個核心概念。當你擁有一系列服務之後,對這些服務進行配置就是很自然的了。在HiveMind裡,一個配置擴充點包含了一個無序元素的集合。其中的每個元素都是定義在某個模組裡,另外每個模組都可以為一個對它可見的擴充點增加定義元素(HiveMind裡面把這種定義稱為contribution)。 服務擴充點(service point)和配置擴充點(configuration
Time of Update: 2018-12-05
在Tapestry4之前的版本,Tapestry使用了大量的動態調用(大部分是使用OGNL調用的),這樣勢必會造成大量運行效率的損失。好在大多數WEB程式的瓶頸是在訪問資料庫而不是在頁面上,所以並沒有對Tapestry的推廣構成毀滅性的影響。但是隨著Tapestry社區的發展,使用人群的增加,Howard Lewis Ship(Tapestry的作者)和一些支援Tapestry項目的開發人員,意識到了這個問題。並作了大量的工作對效能進行改進。
Time of Update: 2018-12-05
Binding是Tapestry一個非常重要的組成部分,同時也是開發人員很少接觸的部分。綁定是用於為組件執行個體定義的參數提供資料的機制。有了綁定機制,組件就不必知道資料的來源,它需要的只是在必要的時候可以擷取資料。 綁定在包含該組件的定義檔案或模版檔案內設定。綁定可以是靜態,或動態(這不是由組件自身決定的)。組件也可能使用綁定將一個值寫回其它對象(典型的是寫回某一個組件)。
Time of Update: 2018-12-05
最近有朋友問:“把‘*.page’與‘*.html’完全分開,靜態頁面自己就是一個完整的項目,但Tapestry預設情況下是找不到的,有什麼方法才能做到呢?”。
Time of Update: 2018-12-05
在"tapestry-prop"這個Tapestry擴充的啟示下,突然有了靈感,編寫了一個叫做"tapestry-delegate"的擴充。這個擴充的功能和Tapestry內建的"listener:"綁定相似,提供了另一種定義監聽函數(listener method)的方法。這裡我定義它為代理函數,一方面是因為Tapestry使用了監聽函數的名稱,一方面畢竟叫它代理函數更加合適。