整理spring的一些面試題

2021-10-04 19:07:42 字數 2119 閱讀 4047

作用物件不同。@component註解作用於類,而@bean註解作用於方法。

換句話說就是@comeponent寫在類上面,根據類名進行注入,而bean註解在方法上 可以將方法的返回值注入到spring中。

@component註解通常是通過類路徑自動偵測以及自動裝配到spring容器中,(我們可以通過componentscan註解定義掃瞄的路徑) ,當然我們可以在spring的配置檔案中自定義掃瞄路徑(如下),bean註解通常是在標有該註解的方法中定義產生這個bean,告訴spring這是某個類的例項,當我需要用它的時候還給我。

<

context:component-scan

base-package

="com.sofency.ssm.controller"

>

context:component-scan

>

我們一般使用@autowired註解去自動裝配bean ,而想要乙個可以用@autowired註解自動裝配的bean 可以採用以下註解

@component註解 通用的註解, 可標註任意類的spring元件,如果乙個bean不知道屬於哪一層,就可以使用@component進行註解標註

@repository 註解 對應持久層即dao層 主要用於資料庫的相關操作

@service 對應服務層 即service 主要涉及一些複雜的邏輯 需要用到dao層注入

@controller 對應springmvc的控制層,即controller層 主要用於接收使用者的請求,並呼叫service層的方法返回資料給前端。

注 這些註解都可以使用@component代替,那標記註解的意義在哪,就在於它可以將掃瞄的範圍縮減,減少查詢的時間。

在transactiondefinition介面中定義了五個表示隔離級別的常量:

isolation_default:使用後端資料庫預設的隔離級別,mysql預設採用的repeatable_read隔離級別;oracle預設採用的read_committed隔離級別。

isolation_read_uncommitted:最低的隔離級別,允許讀取尚未提交的資料變更,可能會導致髒讀、幻讀或不可重複讀。

isolation_read_committed:允許讀取併發事務已經提交的資料,可以阻止髒讀,但是幻讀或不可重複讀仍有可能發生

isolation_repeatable_read:對同一欄位的多次讀取結果都是一致的,除非資料是被本身事務自己所修改,可以阻止髒讀和不可重複讀,但幻讀仍有可能發生。

isolation_serializable:最高的隔離級別,完全服從acid的隔離級別。所有的事務依次逐個執行,這樣事務之間就完全不可能產生干擾,也就是說,該級別可以防止髒讀、不可重複讀以及幻讀。但是這將嚴重影響程式的效能。通常情況下也不會用到該級別。

在transactiondefinition介面中定義了八個表示事務傳播行為的常量。

支援當前事務的情況:

propagation_required:如果當前存在事務,則加入該事務;如果當前沒有事務,則建立乙個新的事務。

propagation_supports: 如果當前存在事務,則加入該事務;如果當前沒有事務,則以非事務的方式繼續執行。

propagation_mandatory: 如果當前存在事務,則加入該事務;如果當前沒有事務,則丟擲異常。(mandatory:強制性)。

不支援當前事務的情況:

propagation_requires_new: 建立乙個新的事務,如果當前存在事務,則把當前事務掛起。

propagation_not_supported: 以非事務方式執行,如果當前存在事務,則把當前事務掛起。

propagation_never: 以非事務方式執行,如果當前存在事務,則丟擲異常。

其他情況:

propagation_nested: 如果當前存在事務,則建立乙個事務作為當前事務的巢狀事務來執行;如果當前沒有事務,則該取值等價於propagation_required。

整理一些java基礎面試題

1 請說出下面程式的輸出。class stringequaltest 執行結果 falsetruetrue補充 string物件的intern方法會得到字串物件在常量池中對應的版本的引用 如果常量池中有乙個字串與string物件的equals結果是true 如果常量池中沒有對應的字串,則該字串將被新...

收集整理的一些面試題

1free 函式 問 下面的程式會在使用者輸入 freeze 的時候出問題,而 zebra 則不會,為什麼?include int main int argc,char argv else if argc 1 else if ptr z free ptr return 0 答 這裡的問題在於,會 通...

一些面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?a 當在繼承類中想重寫某一方法時會用到虛方法 虛方法是類的成員函式,介面相當於抽象類.q override與過載有什麼區別?a override 就是覆蓋的意思,覆蓋父類的同名方法,而過載則是通過參數列來呼叫方法.q 值型別與引用型別有什麼區別?a...