今天要來說明SpringBoot的一些常用的註解標籤使用方式,主要會以目前最為常見的RESTful Web基礎註解標籤的用法進行說明與實際操作。
@SpringBootApplication
是一個重要的Spring Boot註解,它結合了多個註解,用於設置Spring Boot應用程式。
這個註解主要用於啟動Spring Boot應用程式,並設定自動配置、掃描套件以及設定Spring Boot特定的設置,一般在專案建立時就會幫我們自動建立好的
@SpringBootApplication
public class SpringBootItHomeApplication {
// 主程式中的方法
public static void main(String[] args) {
SpringApplication.run(SpringBootItHomeApplication.class, args);
}
}
@RestController
是在 Spring 4.0 開始引入的註解標籤,它通常用於標記控制器類別,用於建立RESTful Web服務。這個註解標籤就相當於 @Controller
和 @ResponseBody
的結合使用的方法。在使用這個註解標時,不需要再到方法上方使用 @ResponseBody
註解。
@SpringBootApplication
@RestController
public class SpringBootItHomeApplication {
// 其他參數定義
public static void main(String[] args) {
SpringApplication.run(SpringBootItHomeApplication.class, args);
}
// 進行獲取的方法建立
// 如RequestMapping、GetMapping等等的方法
}
這個註解標籤的意思是獲取的意思,在Postman中是使用GET的參數進行資料的獲取,如這邊我是寫簡易的使用者資訊獲取方法。
通常在使用的時候會在後方加入 ("/指定請求的網址")
來特定這個的用法是什麼功能的,其他的請求也是,如Get就會寫成是請求獲取資料等等的名稱作為標記,這邊我是做成請求使用者資料的功能。
@GetMapping("/get-user-info")
public String getUserInfo() {
return "Name: " + name + ", Age: " + age;
}
@PutMapping
這個註解標籤的用法為是Spring框架中的一個HTTP請求映射的註解,它用於將HTTP PUT請求映射到控制器方法,主要是用於更新現有資料的內容。
這邊的寫法如同GetMapping所述,我是將這個功能做成簡易的更新使用者資料。
@PutMapping("/update-user-info")
public String updateUserInfo(String name, String age) {
if (this.name == null || this.age == null ) {
return "Update user info fail";
} else if(name.isEmpty() || age.isEmpty()){
return "Please input name and age";
} else{
this.name = name;
this.age = age;
return "Update "+"Name: " + name + ", Age: " + age+" success";
}
}
@PostMapping
用於處理HTTP POST請求,這種請求通常用於創建新資源或提交資料給伺服器。當客戶端發送POST請求時,它通常包含要創建或修改的資料。
這邊我是建立創建使用者資料的功能。
@PostMapping("/add-user-info")
public String userInfo(String name, String age) {
this.name = name;
this.age = age;
return "Add "+"Name: " + name + ", Age: " + age+" success";
}
@DeleteMapping 顧名思義就是HTTP Delete的刪除請求,一般會連動資料庫進行資料筆數的刪除等等的操作。
@DeleteMapping("/delete-user-info")
public String deleteUserInfo() {
this.name = null;
this.age = null;
return "Delete user info success";
}
@RequestMapping 是Spring框架中的一個關鍵註解,用於映射HTTP請求到控制器方法。它可以應用於控制器類別級別或方法級別,並指定處理特定URL路徑和HTTP方法的功能。
@RequestMapping("/get-user-controller")
public UserController getUserController() {
return userController;
}
或是在外部建立Class的時候在上方建立 @RequestMapping
的動作
@RequestMapping("/user-controller")
class UserController {
// 使用者資料的增刪查改等動作
}
@Controller
是Spring框架中的一個註解,用於標記類別為控制器(Controller),用於處理HTTP請求,並返回相應的視圖或數據給客戶端。
控制器類別通常包含多個方法,每個方法處理不同的HTTP請求。這些方法可以使用不同的註解(如 @GetMapping、@PostMapping、@RequestMapping 等)來定義處理的URL路徑和HTTP方法。
這邊我的作法是建立一個新的Class來放置User資料的操作
@Controller
@RequestMapping("/user-controller")
class UserController {
// 其他User的http請求方法
}
@ResponseBody
是Spring框架中的一個註解標籤,通常與 @Controller
一起使用,用於指示控制器方法返回的內容應該作為HTTP回應的主體部分(body)傳送給客戶端
當一個方法標記為 @ResponseBody 時,Spring將自動序列化方法返回的對象(通常是Java物件)為JSON
、XML
或其他支持的格式,然後將該序列化的內容作為HTTP回應的主體返回給客戶端。
這邊就是將外部定義成Controller的UserController類別中的請求參數加上ResponseBody註解標籤
@Controller
@RequestMapping("/user-controller")
class UserController {
private String name;
private String age;
@ResponseBody
@GetMapping("/get-user-info")
public String getUserInfo() {
return "Name: " + name + ", Age: " + age;
}
// 其他如POST、PUT、DELETE等參數皆會加上@ResponseBody註解標籤
}
為了能夠在主程式中連結到UserController的類別進行請求操作,這邊我再加上了 @Autowired
的註解標籤來連結這個類別
@Autowired
是Spring框架中的一個註解,用於實現自動依賴注入(Dependency Injection)。它可以標記在類別的屬性
、建構子
、或方法
上,以讓Spring容器自動將相依性(例如其他Bean或組件)注入到被標記的元素中。
@SpringBootApplication
@RestController
public class SpringBootItHomeApplication {
// 注入UserController
@Autowired
private UserController userController;
public static void main(String[] args) {
SpringApplication.run(SpringBootItHomeApplication.class, args);
}
// 獲取UserController的所有資訊
@RequestMapping("/get-user-controller")
public UserController getUserController() {
return userController;
}
}
可以看到前面加了/user-controller
的網址,代表著 UserController
類別的開頭的RequsetMapping的網址。
若將這些請求全部寫在主程式中不加任何前置的網址則可以省略掉前面的前置網址,但這樣就如同將所有的檔案都丟在主資料夾層不進行子資料夾層的分類的動作一樣,會十分雜亂難以維護。
以上是我今天對於SpringBoot進行Http請求操作的基本註解標籤的說明與簡易Demo建立