spring整體架構
一 架構劃分
spring的架構可以劃分為以下幾個層次:
1.核心模塊:包括IOC,AOP;
2.中間組件:包括封裝的JavaEE服務,驅動組件如jdbc,事物處理等;
3,上層應用
二 模塊概述
spring的整體架構圖如圖所示:
下面詳細介紹一下各個模塊:
1.spring IOC
此模塊中包含了IOC容器最基本的介面和它的實現,也就是說在此核心包中,不僅提供了BeanFactory這個基本介面,還包括了基於beanfactory進行擴展的一系列介面和實現,例如我們常用的XMLBeanFactory。除此之外,此模塊還包括一系列容器,可以根據不同的應用場景選擇不容的IOC容器。
在應用開發過程中,單純的IOC容器是不能滿足需要的,還需要容器的外圍來提供支持,包括Resource資源的抽象與定位,所以這些也是spring IOC的基本內容。除此之外,spring還設計了IOC的高級形態ApplicationContext應用上下文,如ClassPathXMLApplicationContext。
2.spring AOP
該模塊實現了一個完整的建立AOP代理對象,實現AOP攔截器直到實現各種Advice通知的過程。同時圍繞AOP的曾倩功能,集成了AspectJ作為AOP的一個特定實現,在JVM動態代理/CGLIB的基礎上實現了一個AOP框架作為集成其他模塊的工具,例如聲明式事務處理TransactionProxyFactoryBean就是通過AOP集成到spring的。
3.springMVC
這個模塊以DispatcherServlet為核心,通過對web請求的攔截,分發,處理和ModelAndView數據的返回以及各種UI視圖的展現,實現了MVC模式的WEB應用開發框架。
4.spring JDBC
對於資料庫的操作,java提供了jdbc,但是在實際開發中,單純的使用jdbc還是比較繁瑣的。所以spring對jdbc進行了封裝並提供了jdbcTemplate模板類,包含了對資料庫的基本操作(增刪改查),同時springJDBC還提供了RDBMS的操作對象,是應用更面向對象的使用jdbc,如MappingSqlQuery可以直接將資料庫記錄映射到對象集合。
SpringJDBC還封裝了好多ORM工具,如iBatis,Hibernate等。
5.spring事務處理
在SrpingAOP中提到,spring集成了聲明式事務處理。spring將企業開發中事務處理的主要流程進行抽象,通過AOP的切面增強實現了聲明式事務處理的功能。聲明式事務的實現,只需要通過IOC容器進行配置即可完成。應用可以選擇不同的事務處理機制如jdbc,hibernate等,即事務實現的基本過程和具體的事務處理器無關.
因為使用了聲明式事務處理,這些具體的事務處理機制將被納入spring事務處理的統一框架中完成,並與具體的業務代碼解耦。在這個模塊中,我們可以看到一個通用的聲明式事務的基本過程,即配置事務處理攔截器,讀入事務配置屬性,如何根據配置屬性進行事務的創建、掛起、提交、回滾等操作。
6.spring遠端調用
spring帶來的好處之一就是將代碼進行解耦。但是隨之而來的問題就是解耦的應用需要進行分散式部署。所以spring提供了遠端調用的能力,但是只能是spring應用到spring應用的遠端調用。
7.spring應用
使用spring框架開發的應用,從嚴格意義上講並不屬於spring架構的一部分,但是spring包含了許多子項目,這些子項目都是使用了spring作為基礎,例如Spring Security Oauth.
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※Paint幾個枚舉/常量值以及ShadowLayer陰影效果
※負載均衡-Ribbon 的負載均衡策略
TAG:程序員小新人學習 |