Spring是什么呢?首先它是一個開源的項目,而且目前非常活躍;它是一個基於IOC和AOP的構架多層j2ee系統的框架。
兩個概念:IOC/DI 和AOP
IOC:Inversion of Control,控制反轉,不創建對象,但是描述創建它們的方式。在代碼中不直接與對象和服務連接,但在配置文件中描述哪一個組件需要哪一項服務。容器負責將這些聯系在一起。舉個例子,你寫了一個類A,要在類B中引用類A的對象,通常的做法是在類B中通過代碼直接實例化;而IOC則可以由Spring框架來實例化類A的對象,實例化的過程由框架本身控制。
DI:Dependency Injiection,依賴注入,IOC的機制導致很多類的實例化都需要在配置文件中配置,這就決定了需要通過這種特殊的機制才能把不同類之間的調用關系組合起來。由框架把需要的依賴關系注入到不同的業務邏輯中。
AOP:Aspect Oriented Programming,面向切面編程,可以通過預編譯方式和運行期動態代理實現在不修改源代碼的情況下給程序動態統一添加功能的一種技術。
==========================================================
Netty 提供異步的、事件驅動的網絡應用程序框架和工具,用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。
Netty特性:
* 設計
- 統一的API,適用於不同的協議(阻塞和非阻塞)
- 基於靈活、可擴展的事件驅動模型
- 高度可定制的線程模型
- 可靠的無連接數據Socket支持(UDP)
* 性能
- 更好的吞吐量,低延遲
- 更省資源
- 盡量減少不必要的內存拷貝
* 安全
- 完整的SSL/TLS和STARTTLS的支持
- 能在Applet與谷歌Android的限制環境運行良好
* 健壯性
- 不再因過快、過慢或超負載連接導致OutOfMemoryError
- 不再有在高速網絡環境下NIO讀寫頻率不一致的問題
* 易用
- 完善的Java DOC,用戶指南和樣例
- 簡潔簡單
- 僅依賴於JDK 1.5