SpringBoot常用註解與區別

2021-10-19 01:46:12 字數 2340 閱讀 7451

掛個pb同學的友鏈 :

@restcontroller = @responsebody + @controller

那麼post和get的區別到底是什麼呢

post,get是http協議中的兩種傳送請求的方法。

http是基於tcp/ip的關於資料如何在全球資訊網中如何通訊的協議。

http的底層是tcp/ip。所以get和post的底層也是tcp/ip

你要給get加上request body,給post帶上url引數,技術上是完全行的通的。

如果你用get服務,在request body偷偷藏了資料,不同伺服器的處理方式也是不同的,有些伺服器會幫你卸貨,讀出資料,有些伺服器直接忽略,所以,雖然get可以帶request body,也不能保證一定能被接收到哦。

對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);

而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。

並不是所有瀏覽器都會在post中傳送兩次包,firefox就只傳送一次。

get把引數包含在url中,post通過request body傳遞引數。

get請求只能進行url編碼,而post支援多種編碼方式,

使用這個註解相當於加上了下面三個註解:

@configuration 允許將其他@bean註解標識的類加入到spring容器中,相當於spring配置檔案中的beans標籤。

@enableautoconfiguration 啟動自動配置,spring boot會根據我們新增的依賴來啟用一些配置

@componentscan 會自動掃瞄當前包和子包下的標有@component,@service,@repository,@controller的類。相當於以前spring配置檔案中的context:component-scan

requestparam註解接收的引數是來自於requestheader中,即請求頭,也就是在url中,格式為***?username=123&password=456,而requestbody註解接收的引數則是來自於requestbody中,即請求體中。

如果為get請求時,後台接收引數的註解應該為requestparam,如果為post請求時,則後台接收引數的註解就是為requestbody。

get請求中,因為沒有httpentity,所以@requestbody並不適用。

post請求中,通過httpentity傳遞的引數,必須要在請求頭中宣告資料的型別content-type,springmvc通過使用handleradapter 配置的httpmessageconverters來解析httpentity中的資料,然後繫結到相應的bean上。

requestparam可以接受簡單型別的屬性,也可以接受物件型別。

實質是將request.getparameter() 中的key-value引數map利用spring的轉化機制conversionservice配置,轉化成引數接收物件或字段。

在get請求中,不能使用@requestbody。

在post請求,可以使用@requestbody和@requestparam,但是如果使用@requestbody,對於引數轉化的配置必須統一。

@autowired採取的策略為按照型別注入。

@autowired

private userdao userdao;

這樣裝配回去spring容器中找到型別為userdao的類,然後將其注入進來。這樣會產生乙個問題,當乙個型別有多個bean值的時候,會造成無法選擇具體注入哪乙個的情況,這個時候我們需要配合著@qualifier使用。@qualifier告訴spring具體去裝配哪個物件。

public class userservice
這個時候我們就可以通過型別和名稱定位到我們想注入的物件。

@resource註解由j2ee提供,@resource預設按照byname自動注入。

public class userservice 

```①如果同時指定了name和type,則從spring上下文中找到唯一匹配的bean進行裝配,找不到則丟擲異常。

②如果指定了name,則從上下文中查詢名稱(id)匹配的bean進行裝配,找不到則丟擲異常。

③如果指定了type,則從上下文中找到類似匹配的唯一bean進行裝配,找不到或是找到多個,都會丟擲異常。

④如果既沒有指定name,又沒有指定type,則自動按照byname方式進行裝配;如果沒有匹配,則回退為乙個原始型別進行匹配,如果匹配則自動裝配。

使用@resource可以減少**和spring之間的耦合。

springboot與dubbo常用註解功能彙總

dubbo常用註解 service 表示提供者 reference 表示消費者 enabledubbo 啟用dubbo整合配置 controller 請求註解,可以返回資料和頁面 requestbody 設定請求引數格式json,輸入自動轉為物件 responsebody 設定返回引數物件,輸出自動...

Springboot常用註解

1.requestbody可以將請求體中的json字串繫結到相應的bean上 1 之前 ajax success function data public void login requestbody string username,requestbody string pwd 2 使用reques...

springboot常用註解

申明讓spring boot自動給程式進行必要的配置,這個配置等同於 configuration enableautoconfiguration 和 componentscan 三個配置。configuration 相當於傳統的xml配置檔案,如果有些第三方庫需要用到xml檔案,建議仍然通過 con...