最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

SpringBootWeb請求響應(yīng)

2023-03-30 15:02 作者:蘇喆i  | 我要投稿

當(dāng)前最為主流的開發(fā)模式:前后端分離

這樣我們后端開發(fā)人員就用到了postman

postman

Postman是一款功能強大的網(wǎng)頁調(diào)試與發(fā)送網(wǎng)頁HTTP請求的Chrome插件。

作用:常用于進(jìn)行接口測試

1.簡單參數(shù)

在原始的web程序中,獲取請求參數(shù),需要通過HttpServletRequest 對象手動獲取。

SpringBoot方式

簡單參數(shù):參數(shù)名與形參變量名相同,定義形參即可接收參數(shù)。

簡單參數(shù):如果方法形參名稱與請求參數(shù)名稱不匹配,可以使用 @RequestParam 完成映射。

注意事項:

@RequestParam中的required屬性默認(rèn)為true,代表該請求參數(shù)必須傳遞,如果不傳遞將報錯。 如果該參數(shù)是可選的,可以將required屬性設(shè)置為false。

小結(jié):

1.原始方式獲取請求參數(shù)

Controller方法形參中聲明HttpServletRequest對象

調(diào)用對象的getParameter(參數(shù)名)

2.SpringBoot中接收簡單參數(shù)

請求參數(shù)名與方法形參變量名相同

會自動進(jìn)行類型轉(zhuǎn)換

3.@RequestParam注解

方法形參名稱與請求參數(shù)名稱不匹配,通過該注解完成映射

該注解的required屬性默認(rèn)是true,代表請求參數(shù)必須傳遞

2.實體參數(shù)

簡單實體對象:請求參數(shù)名與形參對象屬性名相同,定義POJO接收即可

復(fù)雜實體對象:請求參數(shù)名與形參對象屬性名相同,按照對象層次結(jié)構(gòu)關(guān)系即可接收嵌套POJO屬性參數(shù)。


小結(jié):

實體對象參數(shù)

規(guī)則:請求參數(shù)名與形參對象屬性名相同,即可直接通過POJO接收

3.數(shù)組集合參數(shù)

數(shù)組參數(shù):請求參數(shù)名與形參數(shù)組名稱相同且請求參數(shù)為多個,定義數(shù)組類型形參即可接收參數(shù)

集合參數(shù):請求參數(shù)名與形參集合名稱相同且請求參數(shù)為多個,@RequestParam 綁定參數(shù)關(guān)系

小結(jié):

數(shù)組集合參數(shù)

數(shù)組:請求參數(shù)名與形參中數(shù)組變量名相同,可以直接使用數(shù)組封裝

集合:請求參數(shù)名與形參中集合變量名相同,通過@RequestParam綁定參數(shù)關(guān)系

4.日期參數(shù)

日期參數(shù):使用 @DateTimeFormat 注解完成日期參數(shù)格式轉(zhuǎn)換?

5.JSON 參數(shù)

JSON參數(shù):JSON數(shù)據(jù)鍵名與形參對象屬性名相同,定義POJO類型形參即可接收參數(shù),需要使用 @RequestBody 標(biāo)識

6.路徑參數(shù)

路徑參數(shù):通過請求URL直接傳遞參數(shù),使用{…}來標(biāo)識該路徑參數(shù),需要使用 @PathVariable 獲取路徑參數(shù)

總結(jié):

1.簡單參數(shù)

定義方法形參,請求參數(shù)名與形參變量名一致。

如果不一致,通過@RequestParam手動映射。

2.實體參數(shù)

請求參數(shù)名,與實體對象的屬性名一致,會自動接收封裝

3.數(shù)組集合參數(shù)

數(shù)組:請求參數(shù)名與數(shù)組名一致,直接封裝

集合:請求參數(shù)名與集合名一致,@RequestParam綁定關(guān)系

4.日期參數(shù)

@DateTimeFormat

5.JSON參數(shù)

@RequestBody

6.路徑參數(shù)

@PathVariable

響應(yīng)數(shù)據(jù)

@ResponseBody

小結(jié):

1.@ResponseBody

位置:Controller類上/方法上

作用:將方法返回值直接響應(yīng),若返回值類型是 實體對象/集合 ,轉(zhuǎn)JSON格式響應(yīng)

2.統(tǒng)一響應(yīng)結(jié)果

Result(code、msg、data)

案例:獲取員工數(shù)據(jù),返回統(tǒng)一響應(yīng)結(jié)果,在頁面渲染展示

加載并解析emp.xml文件中的數(shù)據(jù),完成數(shù)據(jù)處理,并在頁面展示。

步驟:

在pom.xml文件中引入dom4j的依賴,用于解析XML文件

引入資料中提供的解析XML的工具類XMLParserUtils、對應(yīng)的實體類Emp、XML文件 emp.xml

引入資料中提供的靜態(tài)頁面文件,放在resources下的static目錄下

編寫Controller程序,處理請求,響應(yīng)數(shù)據(jù)

第一步:

第二步:

第三步:

第四步:

這種寫法復(fù)用性差,難以維護(hù)

分層解耦

三層架構(gòu)

controller:控制層,接收前端發(fā)送的請求,對請求進(jìn)行處理,并響應(yīng)數(shù)據(jù)。

service:業(yè)務(wù)邏輯層,處理具體的業(yè)務(wù)邏輯。

dao:數(shù)據(jù)訪問層(Data Access Object)(持久層),負(fù)責(zé)數(shù)據(jù)訪問操作,包括數(shù)據(jù)的增、刪、改、查。

分層解耦

內(nèi)聚:軟件中各個功能模塊內(nèi)部的功能聯(lián)系。

耦合:衡量軟件中各個層/模塊之間的依賴、關(guān)聯(lián)的程度。

軟件設(shè)計原則:高內(nèi)聚低耦合。

控制反轉(zhuǎn): Inversion Of Control,簡稱IOC。對象的創(chuàng)建控制權(quán)由程序自身轉(zhuǎn)移到外部(容器),這種思想稱為控制反轉(zhuǎn)。

依賴注入: Dependency Injection,簡稱DI。容器為應(yīng)用程序提供運行時,所依賴的資源,稱之為依賴注入。

Bean對象:IOC容器中創(chuàng)建、管理的對象,稱之為bean。


IOC & DI 入門

①. Service層 及 Dao層的實現(xiàn)類,交給IOC容器管理。

②. 為Controller及Service注入運行時,依賴的對象。

③. 運行測試。

IOC詳解

Bean的聲明

要把某個對象交給IOC容器管理,需要在對應(yīng)的類上加上如下注解之一:

注意事項:

聲明bean的時候,可以通過value屬性指定bean的名字,如果沒有指定,默認(rèn)為類名首字母小寫。

使用以上四個注解都可以聲明bean,但是在springboot集成web開發(fā)中,聲明控制器bean只能用@Controller。

Bean組件掃描

  • 前面聲明bean的四大注解,要想生效,還需要被組件掃描注解@ComponentScan掃描。

  • @ComponentScan注解雖然沒有顯式配置,但是實際上已經(jīng)包含在了啟動類聲明注解 @SpringBootApplication 中,默認(rèn)掃描的范圍是啟動類所在包及其子包。

DI詳解

Bean注入

@Autowired注解,默認(rèn)是按照類型進(jìn)行,如果存在多個相同類型的bean,將會報錯

通過以下幾種方案來解決:

@Primary

@Qualifier

@Resource

小結(jié):

1.依賴注入的注解:

@Autowired:默認(rèn)按照類型自動裝配。

如果同類型的bean存在多個:

  • @Primary

  • @Autowired + @Qualifier("bean的名稱")

  • @Resource(name="bean的名稱")

2. @Resource 與 @Autowired區(qū)別

@Autowired 是spring框架提供的注解,而@Resource是JDK提供的注解。

@Autowired 默認(rèn)是按照類型注入,而@Resource默認(rèn)是按照名稱注入。


SpringBootWeb請求響應(yīng)的評論 (共 條)

分享到微博請遵守國家法律
诸暨市| 双流县| 长白| 芜湖市| 昌平区| 泗阳县| 富川| 太仓市| 随州市| 昆明市| 洛南县| 宜兰市| 肃宁县| 遂平县| 潮州市| 枣阳市| 淮滨县| 陆丰市| 洛南县| 栖霞市| 常山县| 泗阳县| 锦屏县| 江津市| 清远市| 方城县| 东阳市| 彰武县| 南京市| 城市| 呼玛县| 红桥区| 天水市| 营山县| 郯城县| 调兵山市| 麻城市| 达州市| 桓台县| 唐海县| 乌鲁木齐县|