Smart Framework 在技術選型方面作了多方面的考慮,必須擁有較高的市場佔有率,而且具備豐富的參考資料。 數據庫
詳細的技術選型以下: 架構
Web 框架 框架 |
使用 Servlet 3.0 規範,可部署在 Tomcat 7.0+ 上 工具 |
單元測試 性能 |
使用 JUnit,由於它是 Java 業界市場佔有率最高的單元測試框架 單元測試 |
數據庫鏈接池 測試 |
使用 Apache Commons DBCP,由於它穩定而高效 spa |
JDBC 封裝 .net |
使用 Apache Commons DbUtils,由於它足夠輕量級,且功能基本夠用 插件 |
文件上傳 |
使用 Apache Commons FileUpload,由於它使用起來很是方便 |
日誌 |
使用 SLF4J,由於它提供了日誌操做的統一接口,可以使用 Log4J 或其它工具做爲具體實現 |
JSON 庫 |
使用 Jackson,由於它擁有較高的性能,且市場佔有率較高 |
動態代理 |
使用 CGLib,由於能夠彌補 JDK 動態代理的不足,可在運行時對 class 進行字節碼加強 |
除此之外,也使用了 Apache Commons 的其它知名項目,例如:Lang、Collections、BeanUtils、Codec 等。
經過以上技術選型,咱們能夠得知,這些技術都是開源項目,而它們之間存在如下依賴關係:
不難發現,這些項目都擁有較小的體積:
可見,jar 包文件總大小還不到 4 M。
下面再來看看 Smart 框架源碼的 LOC(代碼行數)統計吧:
可見,代碼實際總行數(去掉註釋與空行)還不到 3000 行。
核心:
MVC |
基於 Servlet 3.0 規範 |
IOC |
輕量級 IOC 容器 |
AOP |
輕量級 AOP 框架 |
ORM |
基於 JDBC 規範 |
DAO |
統一的數據訪問 API |
插件:
Cache |
基於註解或使用 Cache API |
WebService |
發佈與調用 SOAP 服務或 REST 服務 |
|
郵件發送與收取 |
I18N |
國際化多語言包 |
Job |
基於 Quartz 的 cron 表達式的任務調度框架 |
Hessian |
經過 HTTP 傳輸二進制數據 |
Template |
基於 Velocity 的模板引擎 |