SpringSocial

⒈常用的pom依賴

 <dependency>
     <groupId>org.springframework.social</groupId>
     <artifactId>spring-social-core</artifactId>
     <version>1.1.6.RELEASE</version>
 </dependency>

⒉一些常用接口及實現

1.ServiceProvider =》AbstractOAuth2ServiceProvider

   服務提供商抽象接口,針對每一個服務提供商,例如QQ、微信、微博等,都需要提供一個ServiceProvider實現。

   SpringSocial給我們提供了一個AbstractOAuth2ServiceProvider抽象類,它幫我們實現了一些共有的東西,我們實現服務提供商的時候只需要繼承這個抽象類就可以了。

2.OAuth2Operations =》 OAuth2Template

   OAuth2Operations 接口封裝了OAuth2協議的從①步到第⑤步,實際上OAuth2協議的第①步到第⑤步是一個標準的流程,第⑥步是一個個性化的流程,因爲第⑥步每一個服務提供商所提供的用戶信息數據結構是不一樣的。SpringSocial給我們提供了一個OAuth2Operations標準的實現類OAuth2Template。

3.Api(SpringSocial沒有提供,需要我們自己來寫) =》 AbstractOAuth2ApiBinding

   因爲每一個服務提供商對用戶基本信息的調用都是不同的,所以需要我們自己去寫一個Api接口來封裝獲取用戶信息(第⑥步)的方法。SpringSocial給我們提供了一個AbstractOAuth2ApiBinding抽象類來幫助我們更快的完成第⑥步的實現。

4.ConnectionFactory =》OAuth2ConnectionFactory

   負責創建我們Connection實例,也就是包含前6步獲取到的用戶信息的對象。爲了創建Connection實例,ConnectionFactory 需要系統前6步的流程,走前6步的流程就需要ServiceProvider,因此,ConnectionFactory包含着一個ServiceProvider實例,在開發中,我們需要調用ConnectionFactory的ServiceProvider實例來完成前6步的流程,將獲取到的用戶信息封裝成一個Connection。

5.Connection =》 OAuth2Connection

   封裝我們前6步獲取到的用戶信息,由ConnectionFactory創建(一個連接工廠)。Connection 是一個固定的數據結構(字段名和字段都是固定的),每一個服務提供商的用戶數據定義都是不一樣的,我們需要通過ApiAdapter將每個服務商不一樣的數據結構轉化成Connection這樣一個標準的數據結構。

6.ApiAdapter

   顧名思義,就是在我們的Api接口和Connection接口之間做一個適配,將每個服務商不一樣的數據結構轉化成Connection這樣一個標準的數據結構。

7.UsersConnectionRepository =》JdbcUsersConnectionRepository

   將Connection 信息(即前6步獲取到的用戶信息)存儲到數據庫UserConnection表中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章