Spring Boot WebAPI 服務入門
Spring Boot可以說,是當前Java領域非常重要的一個框架,可以非常方便的進行Java Web應用的開發。官網提供的一套腳手架可以快速進行項目模板的創建,并引入依賴庫。項目初始模板可以訪問網站:https://start.spring.io 即可,具體如下所示:
此界面提供了多種配置參數,可以宣稱依賴管理的工具是Maven還是Gradle,可以宣傳開發的語言是Java\Kotlin還是Groovy。另外,可以配置項目的打包方式,是Jar還是War,并選擇JDK的版本,這里選擇JDK 8。右邊可以添加合適的依賴庫,這里添加Spring Web,MySQL和PostgreSQL的驅動庫。參數確定后,單擊【GENERATE】按鈕生成項目模板代碼包。
其次,可以將下載的項目模板代碼包解壓,并用IDEA打開項目,其中的pom.xml代碼如下:
默認情況下,IDEA中的Maven倉庫會指向官方的地址,這可能會導致有些Jar包下載的比較慢,或者說有時候會出現無法下載的情況。針對這種情況,建議是配置maven的本地倉庫,并設置國內的鏡像,比如華為的鏡像或者阿里的鏡像等。如果有些庫還是沒有,可以放在本地,并在pom.xml中進行引用。
在項目文件中,添加一個控制器文件,這個控制器controller包位于DemoApplication類的內部,這樣SpringBoot可以自動進行類掃碼,并加載,否則,可能需要單獨進行配置,指定SpringBoot到哪里進行類掃描,不然會出現定義的controller api無法調用的情況。具體的項目結構如下圖所示:
HomeController.java是一個典型的Java 后臺代碼,SpringBoot利用框架提供的注解,非常方便的進行Web服務的開發工作,大大簡化了后臺代碼的開發難度,從而提高了開發效率。示例文件的代碼如下:
package com.example.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api") public class HomeController { @RequestMapping("/login") public String Login(@RequestParam("username") String username, @RequestParam("password") String password) { if ("admin".equals(username) && "12345".equals(password)){ return "1"; }else { return "0"; } } }
根據官方文檔的說法,@RestController相當于@Controller和@ResponseBody的組合,返回JSON數據時,不需要在方法前加@ResponseBody,但用@RestController注解時,不能返回jsp,html頁面。@RequestMapping代碼請求時候的API路徑映射,這個是唯一的,可以供前臺AJAX進行調用。這里類上的@RequestMapping注解和方法上的@RequestMapping組合起來構成一個API的調用路徑。@RequestParam("username") String username表示一個Request參數,參數名為username,類型是String,并賦值給變量username。這樣前臺調用的時候,參數名需要和后臺參數名保持一致。
下面介紹一種將本地的IP地址映射到公網IP的方法,Localtunnel是一個可以讓內網服務器暴露到公網上的開源項目,它可以通過NPM來全局安裝:
npm install localtunnel -g 映射 lt --port 8080
它在每次開啟映射外網的網址時,一般都是不同的。示例如圖所示:
然后打開瀏覽器輸入對應的公網網址即可,如果能按預期返回結果,那么說明web API邏輯基本正確:
這對于用鴻蒙OS編寫測試代碼,進行后臺服務器通信來說,是非常重要的手段。由于使用遠程模擬器,因此,本地開啟的服務不能在遠程模擬器上進行訪問,因此無法測試訪問Web API等測試用例。
Ajax Java Spring Boot
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。