一、特點:
1.通信方式:比如有RPC、WebService、Restful Web Service
2.信息傳遞:系統A B C之間。通信載體 json。
3.無狀態:分佈式會話、session會話等也都是無狀態。
4.獨立性:系統之間。
二、Rest設計規範:
get:獲取資源。/order/{id} /getOrder?id=2002
post:保存、更新、批量操作。/order 數據放在json中,傳給後端。 /saveOrder
put:更新。/order/{id} /modifyOrder
delete:刪除。/order/{id} /deleteOrder?id=1001
規範要求:使用名詞。
但是我們可以不使用強規範,所以使用弱規範,方便理解。
三、2-25 詳解事務的傳播
/**
* 事務傳播 - Propagation
* REQUIRED: 使用當前的事務,如果當前沒有事務,則自己新建一個事務,子方法是必須運行在一個事務中的;
* 如果當前存在事務,則加入這個事務,成爲一個整體。
* 舉例:領導沒飯喫,我有錢,我會自己買了自己喫;領導有的喫,會分給你一起喫。
* SUPPORTS: 如果當前有事務,則使用事務;如果當前沒有事務,則不使用事務。
* 舉例:領導沒飯喫,我也沒飯喫;領導有飯喫,我也有飯喫。
* MANDATORY: 該傳播屬性強制必須存在一個事務,如果不存在,則拋出異常
* 舉例:領導必須管飯,不管飯沒飯喫,我就不樂意了,就不幹了(拋出異常)
* REQUIRES_NEW: 如果當前有事務,則掛起該事務,並且自己創建一個新的事務給自己使用;
* 如果當前沒有事務,則同 REQUIRED
* 舉例:領導有飯喫,我偏不要,我自己買了自己喫
* NOT_SUPPORTED: 如果當前有事務,則把事務掛起,自己不適用事務去運行數據庫操作
* 舉例:領導有飯喫,分一點給你,我太忙了,放一邊,我不喫
* NEVER: 如果當前有事務存在,則拋出異常
* 舉例:領導有飯給你喫,我不想喫,我熱愛工作,我拋出異常
* NESTED: 如果當前有事務,則開啓子事務(嵌套事務),嵌套事務是獨立提交或者回滾;
* 如果當前沒有事務,則同 REQUIRED。
* 但是如果主事務提交,則會攜帶子事務一起提交。
* 如果主事務回滾,則子事務會一起回滾。相反,子事務異常,則父事務可以回滾或不回滾。
* 舉例:領導決策不對,老闆怪罪,領導帶着小弟一同受罪。小弟出了差錯,領導可以推卸責任。
*/