????? 常見(jiàn)的事物傳播規(guī)則有如下幾種:
- ?PROPAGATION_MANDATORY: 要求調(diào)用該方法的線程必須處于事務(wù)環(huán)境中,否則拋出異常;
- ?PROPAGATION_NESTED:如果執(zhí)行該方法的線程已處于事務(wù)環(huán)境下,依然啟動(dòng)新的事務(wù),方法在嵌套的事務(wù)里執(zhí)行。如果執(zhí)行該方法的線程并未處于事務(wù)中,也啟動(dòng)新的事務(wù),然后執(zhí)行該方法,此時(shí)與?PROPAGATION_REQUIRED相同;
- ?PROPAGATION_NEVER:不允許調(diào)用該方法的線程處于事務(wù)環(huán)境下,如果調(diào)用該方法的線程處于事務(wù)環(huán)境下,則拋出異常;
- ?PROPAGATION_NOT_SUPPORTED:如果調(diào)用該方法的線程處于事務(wù)中,則先暫停當(dāng)前事務(wù),然戶(hù)執(zhí)行該方法;
- ?PROPAGATION_REQUIRED:要求在事務(wù)環(huán)境中執(zhí)行該方法,如果當(dāng)前線程已處于事務(wù)中,則直接調(diào)用,然后執(zhí)行該方法;
- ?PROPAGATION_REQUIRES_NEW:該方法要求有一個(gè)在新的事務(wù)環(huán)境中執(zhí)行,如果當(dāng)前線程已處于事務(wù)中,先暫停當(dāng)前事務(wù),啟動(dòng)新事務(wù)后執(zhí)行該方法,如果當(dāng)前調(diào)用線程不處在事務(wù)中,則啟動(dòng)新的事務(wù)方法后執(zhí)行方法;
- ?PROPAGATION_SUPPORTS:如果當(dāng)前執(zhí)行線程處于事務(wù)中,則執(zhí)行當(dāng)前事務(wù),否則不使用事務(wù)。