国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 中 Controller 接口參數(shù)注解全攻略與實戰(zhàn)案例詳解

這篇具有很好參考價值的文章主要介紹了Spring Boot 中 Controller 接口參數(shù)注解全攻略與實戰(zhàn)案例詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

引言

在 Spring Boot 應用程序中,Controller 是 MVC 架構(gòu)模式中的核心組件之一,負責處理 HTTP 請求并返回響應結(jié)果。為了更好地映射請求、解析請求參數(shù)、執(zhí)行業(yè)務邏輯和生成視圖或 JSON 數(shù)據(jù),Controller 中廣泛使用了各種注解。本文將全面梳理 Spring Boot 中 Controller 接口所使用的各類注解及其具體使用案例。

一、Controller 類級別的注解

1. 控制器類注解

@Controller

import org.springframework.stereotype.Controller;

@Controller
public class MyController {
    // ...
}

用途:標記一個類作為Spring MVC的控制器,此類中包含的方法將被映射為HTTP請求處理器。

2. RESTful控制器注解

@RestController
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyRestController {
    // ...
}

用途:@RestController是一個組合注解,它同時包含了@Controller和@ResponseBody,意味著該控制器的所有方法都將直接返回JSON、XML或者其他類型的數(shù)據(jù)而不是視圖名。

二、路徑映射注解

@RequestMapping

@RequestMapping
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/api/v1")
public class MyApiV1Controller {
    @RequestMapping("/users")
    public ResponseEntity<List<User>> getAllUsers() {
        // ...
    }
}

用途:它可以放在類或方法上,用于指定控制器類或者方法處理的請求的基本URL路徑。

三、 方法級別的路徑映射注解

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping

import org.springframework.web.bind.annotation.*;

@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
    // ...
}

@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
    // ...
}

@PutMapping("/users/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User updatedUser) {
    // ...
}

@DeleteMapping("/users/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
    // ...
}

用途:這些注解分別對應HTTP的GET、POST、PUT和DELETE方法,用于精確映射HTTP請求到相應的方法。

四、 方法參數(shù)注解

@PathVariable

@GetMapping("/users/{userId}/details")
public UserDetails getUserDetails(@PathVariable("userId") Long userId) {
    // ...
}

用途:從URL模板變量中提取值,并將其綁定到方法參數(shù)。

@RequestParam

@GetMapping("/search")
public List<User> searchUsers(
    @RequestParam(name = "name", required = false) String name,
    @RequestParam(defaultValue = "10") int limit) {
    // ...
}

用途:從請求的查詢參數(shù)中獲取值。

@RequestBody

@PostMapping("/users")
public User createUser(@RequestBody User newUser) {
    // ...
}

用途:將整個HTTP請求體轉(zhuǎn)換成Java對象。

@RequestHeader

@GetMapping("/headers")
public String getHeaderValue(@RequestHeader("Authorization") String authHeader) {
    // ...
}

用途:從請求頭中提取指定名稱的值。

@CookieValue

@GetMapping("/cookies")
public String getCookie(@CookieValue(value = "JSESSIONID", defaultValue = "") String sessionId) {
    // ...
}

用途:從請求的cookie中提取指定名稱的值。

@ModelAttribute

@ModelAttribute("userForm")
public UserForm setUpUserForm() {
    return new UserForm();
}

@PostMapping("/register")
public String register(@ModelAttribute("userForm") UserForm userForm) {
    // ...
}

作用:用于將請求參數(shù)自動綁定到模型屬性對象,或者在方法體內(nèi)填充模型屬性。

五、其他增強型注解

@ModelAttribute 用于方法參數(shù)時,它可以從模型中查找已有的屬性,或者通過調(diào)用方法來創(chuàng)建新的屬性。

@Valid 結(jié)合 JSR-303/JSR-349 Bean Validation 使用,對方法參數(shù)進行數(shù)據(jù)校驗。

@PostMapping("/register")
public String register(@Valid @ModelAttribute("userForm") UserForm userForm, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        // ...
    }
    // ...
}

六、全局異常處理和日志記錄

@ControllerAdvice: 用于創(chuàng)建全局異常處理器,處理所有Controller中拋出的異常。

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(UserNotFoundException.class)
    public ResponseEntity<String> handleUserNotFoundException(UserNotFoundException ex) {
        // ...
    }
}

通過以上示例,我們展示了Spring Boot中Controller接口常見的注解及其實際應用場景。根據(jù)具體需求,開發(fā)者可以選擇合適的注解以構(gòu)建功能完備且健壯的RESTful API。文章來源地址http://www.zghlxwxcb.cn/news/detail-856989.html

到了這里,關(guān)于Spring Boot 中 Controller 接口參數(shù)注解全攻略與實戰(zhàn)案例詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • Spring Boot請求處理-常用參數(shù)注解

    Spring Boot請求處理-常用參數(shù)注解

    @PathVariable 路徑變量 @RequestParam 獲取請求參數(shù) @RequestHeader 獲取請求頭 @RequestBody 獲取請求體【Post】 @CookieValue 獲取Cookie值 RequestAttribute 獲取request域?qū)傩?@ModelAttribute 1. @PathVariable 該注解主要用于rest風格的搭配使用,請求路徑中不再以 k:v 的形式給出請求參數(shù)和值;而是直接給定

    2024年02月10日
    瀏覽(33)
  • java spring boot 注解、接口和問題解決方法(持續(xù)更新)

    java spring boot 注解、接口和問題解決方法(持續(xù)更新)

    @RestController ????????是SpringMVC框架中的一個注解,它結(jié)合了@Controller和@ResponseBody兩個注解的功能,用于標記一個類或者方法,表示該類或方法用于處理HTTP請求,并將響應的結(jié)果直接返回給客戶端,而不需要進行視圖渲染 @Controller ????????是Spring Framework中的注解,用于

    2024年02月06日
    瀏覽(31)
  • 對接第三方接口鑒權(quán)(Spring Boot+Aop+注解實現(xiàn)Api接口簽名驗證)

    對接第三方接口鑒權(quán)(Spring Boot+Aop+注解實現(xiàn)Api接口簽名驗證)

    一個web系統(tǒng),從接口的使用范圍也可以分為對內(nèi)和對外兩種,對內(nèi)的接口主要限于一些我們內(nèi)部系統(tǒng)的調(diào)用,多是通過內(nèi)網(wǎng)進行調(diào)用,往往不用考慮太復雜的鑒權(quán)操作。但是,對于對外的接口,我們就不得不重視這個問題,外部接口沒有做鑒權(quán)的操作就直接發(fā)布到互聯(lián)網(wǎng),而

    2024年04月29日
    瀏覽(133)
  • spring-boot 請求參數(shù)校驗:注解 @Validated 的使用、手動校驗、自定義校驗

    spring-boot中可以用@validated來校驗數(shù)據(jù),如果數(shù)據(jù)異常則會統(tǒng)一拋出異常,方便異常中心統(tǒng)一處理。 spring-boot已經(jīng)引入了基礎包,所以直接使用就可以。 在屬性上添加校驗注解: 在Controller上添加 @Validated 注解 校驗未通過時,可能看到: 在 @Validated 后面緊跟著追加BindingResult,

    2023年04月16日
    瀏覽(33)
  • Spring Boot入門(23):記錄接口日志再也不難!用AOP和自定義注解給Spring Boot加上日志攔截器!

    Spring Boot入門(23):記錄接口日志再也不難!用AOP和自定義注解給Spring Boot加上日志攔截器!

    ? ? ? ? 在上兩期中,我們著重介紹了如何集成使用 Logback?與?log4j2?日志框架的使用,今天我們講解的主題依舊跟日志有關(guān),不過不是使用何種開源框架,而是自己動手造。 ? ? ? ? Spring的核心之一AOP;AOP翻譯過來叫面向切面編程, 核心就是這個切面. 切面表示從業(yè)務邏輯中

    2024年02月11日
    瀏覽(25)
  • Spring Boot 3自定義注解+攔截器+Redis實現(xiàn)高并發(fā)接口限流

    在當今互聯(lián)網(wǎng)應用開發(fā)中,高并發(fā)訪問是一個常見的挑戰(zhàn)。為了保障系統(tǒng)的穩(wěn)定性和可靠性,我們需要對接口進行限流,防止因過多的請求導致系統(tǒng)崩潰。 本文將介紹如何利用Spring Boot 3中的自定義注解、攔截器和Redis實現(xiàn)高并發(fā)接口限流,幫助程序員解決這一挑戰(zhàn)。 1. 自定

    2024年04月28日
    瀏覽(25)
  • Spring Boot入門(23):基于AOP實現(xiàn)自定義注解攔截接口日志并保存入庫 | 超級詳細,建議收藏

    Spring Boot入門(23):基于AOP實現(xiàn)自定義注解攔截接口日志并保存入庫 | 超級詳細,建議收藏

    ? ? ? ? 在上兩期中,我們著重介紹了如何集成使用 Logback?與?log4j2?日志框架的使用,今天我們講解的主題依舊跟日志有關(guān),不過不是使用何種開源框架,而是自己動手造。 ? ? ? ? Spring的核心之一AOP;AOP翻譯過來叫面向切面編程, 核心就是這個切面. 切面表示從業(yè)務邏輯中

    2024年02月11日
    瀏覽(29)
  • MongoDB 索引全攻略

    MongoDB 索引全攻略

    目錄 一、索引介紹 ? ? ? ? 1.1 單字段索引 ? ? ? ? 1.2 復合索引 ? ? ? ? 1.3?多鍵索引 ? ? ? ? 1.4 主鍵索引 ? ? ? ? 1.5 TTL 索引 ? ? ? ? 1.6 地理空間索引 ? ? ? ? 1.7 哈希索引 ? ? ? ? 1.8 創(chuàng)建索引時注意事項 ? ? ? ? 1.9 索引效果查看 ?二、索引實現(xiàn)原理 ? ? ? ? 2.1 為

    2024年04月27日
    瀏覽(23)
  • HackTheGame游戲全攻略

    HackTheGame游戲全攻略

    游戲鏈接 鏈接: 百度網(wǎng)盤 請輸入提取碼 提取碼:bu1w HackTheGame游戲的玩法: 您將扮演一個黑客的角色,接受各種各樣的任務,在不被發(fā)現(xiàn)的情況下,使用一些工具入侵他人的電腦,服務器并完成竊取資料,粉碎文件,植入病毒等操作.您有一共有兩次機會,第三次被追蹤到的話,您就會被捕

    2024年02月05日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包