之前看到乙個oppo面試題, 大概問的是 a方法有事務 內嵌呼叫b方法 b方法沒事務註解 請問 這個情況下 事務的乙個狀態是什麼
其實 這個我感覺 就是在問 spring中**物件的使用關係
下面這個**是面試題的描述
其實這個時候 內嵌直接呼叫 相當於 都在a的事物裡面 b其實沒有事務@service
public
class
testservice
public
voidb(
)}
但是下面看看這種情況
這個時候 雖然b有了事物註解但是 不生效 因為呼叫的不是**物件 這個方法(b方法)沒有被增強@service
public
class
testservice
@transactional
(rollbackfor = exception.
class
)public
voidb(
)}
正確的呼叫方法:
1,迴圈依賴自己:
@service
public
class
testservice
@transactional
(rollbackfor = exception.
class
)public
voidb(
)}
3,使用aopcontext.currentproxy()獲取當前**物件@service
public
class
testservice
@transactional
(rollbackfor = exception.
class
)public
voidb(
)}
@service
public
class
testservice
@transactional
(rollbackfor = exception.
class
)public
voidb(
)}
Spring靜態方法中呼叫Bean
在寫專案時,我們都會有習慣將一些特定功能的函式,封裝到工具類的靜態方法中,呼叫時,直接通過類命呼叫靜態方法即可。但是,有一些工具類,我們希望靈活一點,比如方法裡面有個變數的值是通過配置檔案或其它形式進行賦值的。解析 這裡我們將這個工具類tokenutil 使用 component註解的形式,依賴注入...
Spring中關於Setter方法注入的理解
setter注入 最常用的注入方法,需要在xml配置檔案中進行手動的配置 要求 物件中的每個屬性必須有setter方法 如何配置 需要為物件的每乙個屬性配置乙個property標籤 如何給屬性注入值,需要先確定屬性的型別 1.簡單資料型別 value賦值 2.引用資料型別 ref賦值 3.集合資料型...
關於非同步方法呼叫
在我們的程式中,很多時候會有一些耗時較長的運算,我們為了保證使用者體驗,讓使用者介面能得到及時的響應。我們一般會採用多執行緒操作,讓耗時操作在 後台完成,比如我們在上傳檔案或其他一些需求要在介面顯示進度條的例子。在 net2.0中為我們供了乙個backgroundworker類可以完成類似的需求,具...