一、spring framework核心特性
1、IOC容器:IoC Container
2、Spring事件:Events(基於java標準事件的擴展)
3、資源管理:Resources(基於java資源管理,API也借鑑了java的)
4、國際化:i18n(基於java國際化)
5、校驗:Validation
6、數據綁定:Data binding(java沒有,外面屬性與pojo的屬性、set/get方法之間的綁定、這樣就會涉及字符類型與複雜類型之間轉換,也就是下面的類型轉換)
7、類型轉換:Type Conversion
8、Spring表達式:Spring Express Language,通過表達式中通過符號來引用變量,實現動態調用的目的
9、面向切面編程(AOP)
二、spring framework數據存儲
1、JDBC:JDBCTemplate Mybatis、hibernate
2、事務抽象(Transactions)
3、DAO支持
4、O/R映射:JPA、hibernate
5、XML編列
三、spring framework Web
spring Web有兩個方向技術棧:
1、Web Servlet技術棧:spring mvc、WebSocket、SockJS
2、Web Reactive技術棧:spring WebFlux、WebClient、WebSocket
四、技術整合
1、遠程調用:基於RMI協議的、基於Hessian協議(比如dubbo)、基於Thrift協議
2、JAVA消息服務(異步調用):JMS(ActiveMQ),而不包括非JMS規範的實現(如:kafka、RocketMQ)
3、JAVA連接架構(JCA):這個架構主要是統一一些JAVA的一些資源連接(此點使用少)
4、JAVA管理擴展(JMX):CPU、磁盤利用率:通過spring1.2後引入的@ManagedResource註解簡化實現
5、JAVA郵件客戶端(Email)
6、本地任務(利用java多線程技術實現,單機版的,非分佈式的)Task
7、本地調度(利用java多線程技術實現,單機版的,非分佈式的)Scheduling,或者可以使用JAVA的JUC框架也可以完成類似調度工作
8、緩存抽象(Caching):通過註解方式抽象緩存的使用,實現緩存透明化
9、Spring測試(Testing)
- 模擬對象:用於單元測試
- TestContext框架:用於集成測試,spring用於整合集成測試的框架
- Spring MVC測試:測試Web服務端的
- web測試客戶端:測試Web客戶端的