JEECMS 2 3 2架構分析

2021-05-24 02:26:11 字數 1095 閱讀 6539

對於乙個程式設計人員來說,這種東西的內在架構還是值得一看的。不過也完全沒有那麼神秘或者說深奧。今天我就抽出1個小時,剖析一下 jeecms 2.3.2這個j2ee版的開源cms。之所以選擇這個開源系統,是因為有人號稱,這個系統比我之前自己設計的架構還要高乙個檔次。所以,我也很想一**竟。看看到底有沒有高出乙個檔次。

這個系統在半年前我就玩過並且部署過了,那個時候這個系統還是沒有完全開源,還是1.0 beta版,因為好幾個關鍵jar包都沒有開放原始碼,也就沒有研究他的架構,而是不斷的學習眼前的知識。直到前些天,乙個大四的師兄說用這個系統改了乙個**,才讓我重拾以前封塵已久的記憶。當然我當時也沒有打算去研究這個開源系統,但是直到後來有個人說這個系統比我的架構高乙個檔次的時候,我決定花上一點時間一窺究竟。證實一下這個說法。同時也讓自己設計能力長進一下。

切入正題----------------------

剖析系統第一步,當然要先部署上了,首先檢視其install目錄的jsp檔案,得知其web.xml是在安裝過程中拷貝過去的,sql檔案也一覽無餘,所以俺把原始碼放好,web.xml拷貝過去,建了庫。順利部署。

然後是窺探spring配置檔案,看看我們能發現什麼,首先這個系統採用的是spring緊耦合hibernate,好處就是省去乙個檔案,壞處就是耦合過緊,不易拆分。此外開啟了hibernate二級快取,快取採用ehcache1.6,此外加入了spring事務,事務處理通過annotation注入,半年前系統學習過源注釋,也深知其使用的優缺點。優點乾淨簡潔易修改,缺點不利於維護,業務與配置混雜。

通過引用的jar包可以知道其適用的是dom4j操作xml,全文索引採用了lucene+paoding,日誌系統採用slf4j+logback,ok,上面所列舉的種種元件也很大眾化,沒什麼技術難點。

通過檢視元件的配置,可以知道其部分資料做了持久化快取,例如站點實體,全域性變數,功能集等等,不詳細舉出了。struts2採用了分散配置的做法,這樣功能模組更加的清晰。通過檢視其配置可以知道使用了struts2的validate元件。這個系統把所有模板都放入了web-inf下,這樣安全性進一步提公升了,這也是我感覺非常棒的做法。不過這種方案以前也早就知道。

架構分析到這,我覺得這樣的架構設計的非常合理,如果說掌握這樣的架構五年內不用學習新技術,那眼界真的有夠渺小,多讀讀書吧。

Android OkHttp3架構分析

在okhttp3中,其靈活性很大程度上體現在,可以intercept其任意乙個環節,而這個優勢便是okhttp3整個請求響應架構體系的精髓所在 okhttp 中的對所有的任務採用namedrunnable,約束每個執行單元給出對應的業務名稱,以便於執行緒維護。1.非同步請求執行緒池 okhttp d...

Duwamish7架構分層分析

duwamish7架構分層分析 1.總的感覺 使用的不是一種純粹的oo的實現方法,基本上可以看作一種組合良好的事務指令碼的寫法。但是這種寫法我個人不是很推薦,關鍵有下面幾點遺憾 1 沒有用oo的寫法,而將實體的資料部分放在了common,而將它的方法又散落到了businessrules busine...

hessian原始碼分析(一) 架構

在計費中心的對外互動這塊採用了hessian,有必要對hessian的執行機理和原始碼做一定的解析。大致翻了翻原始碼後,發現hessian的主要結構分客戶端與服務端,中間基於http傳輸。客戶端主要做的事情是把對遠端介面呼叫序列化為流,並傳輸到服務端 服務端主要做的事情是把傳輸過來的流反序列化為對服...