HOME> 在线世界杯> Spring MVC常用注解详解及示例代码

Spring MVC常用注解详解及示例代码

2025-07-22 00:54:25

1. Spring MVC常用的注解有哪些?

Spring MVC是一个基于Java的开源框架,用于构建Web应用程序。它采用了MVC(Model-View-Controller)设计模式,将应用程序分为模型、视图和控制器三个部分。在Spring MVC中,注解被广泛用于配置和控制请求的处理。

本文将介绍Spring MVC中常用的注解,包括请求映射注解、请求参数注解、响应注解以及其他常用注解。

2. 请求映射注解

2.1 @RequestMapping:该注解用于将请求URL映射到对应的处理方法上。可以用在类级别和方法级别上,用于处理不同层级下的URL映射。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@RequestMapping("/create")

public String createUser() {

// 处理创建用户的逻辑

return "success";

}

}

2.2 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping:这些注解分别映射HTTP的GET、POST、PUT和DELETE请求。它们是@RequestMapping(method = RequestMethod.XXX)的缩写形式。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@GetMapping("/{id}")

public String getUserById(@PathVariable("id") Long id) {

// 根据用户ID查询用户信息

return "user";

}

}

2.3 @PathVariable:该注解用于将URL中的占位符参数绑定到方法的参数上。可以通过指定占位符名称或使用默认名称。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@GetMapping("/{id}")

public String getUserById(@PathVariable Long id) {

// 根据用户ID查询用户信息

return "user";

}

}

3. 请求参数注解

3.1 @RequestParam:该注解用于将请求参数绑定到方法的参数上。可以指定参数的名称、是否必需、默认值等。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@GetMapping("/search")

public String searchUsers(@RequestParam("keyword") String keyword) {

// 根据关键字搜索用户

return "users";

}

}

3.2 @RequestBody:该注解用于将请求体中的数据绑定到方法的参数上。适用于POST请求传递JSON/XML等格式的数据。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@PostMapping("/")

public String createUser(@RequestBody User user) {

// 创建新用户

return "success";

}

}

3.3 @RequestHeader:该注解用于将请求头中的信息绑定到方法的参数上。可以指定请求头的名称和是否必需等。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@GetMapping("/info")

public String getUserInfo(@RequestHeader("Authorization") String token) {

// 根据Token获取用户信息

return "info";

}

}

4. 响应注解

4.1 @ResponseBody:该注解用于将方法的返回值直接写入HTTP响应体中,而不是通过视图解析器解析为视图。常用于返回JSON数据。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@GetMapping("/{id}")

@ResponseBody

public User getUserById(@PathVariable Long id) {

// 根据用户ID查询用户信息

return userService.getUserById(id);

}

}

4.2 @ResponseStatus:该注解用于在处理方法完成后,设置响应的状态码。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@DeleteMapping("/{id}")

@ResponseStatus(HttpStatus.NO_CONTENT)

public void deleteUser(@PathVariable Long id) {

// 根据用户ID删除用户

userService.deleteUser(id);

}

}

5. 其他常用注解

5.1 @ModelAttribute:该注解用于将方法的返回值或方法参数绑定到模型对象上。常用于将公共数据添加到每个请求的模型中。

示例代码:

@Controller

@RequestMapping("/users")

@SessionAttributes("user")

public class UserController {

@ModelAttribute("user")

public User getUser() {

// 返回默认的用户对象

return new User();

}

}

5.2 @Valid、@NotNull、@Size:这些注解用于验证请求参数的合法性。可以在方法参数上使用,用于参数校验。

示例代码:

@Controller

@RequestMapping("/users")

public class UserController {

@PostMapping("/")

public String createUser(@Valid @RequestBody User user) {

// 创建新用户

return "success";

}

}

5.3 @ExceptionHandler:该注解用于处理控制器内部的异常,并返回自定义的错误视图或错误信息。

示例代码:

@ControllerAdvice

public class GlobalExceptionHandler {

@ExceptionHandler(Exception.class)

public ModelAndView handleException(Exception ex) {

// 处理异常并返回错误视图

ModelAndView modelAndView = new ModelAndView("error");

modelAndView.addObject("message", ex.getMessage());

return modelAndView;

}

}

6. 总结

本文介绍了Spring MVC中常用的注解,包括请求映射注解、请求参数注解、响应注解以及其他常用注解。这些注解可以帮助开发人员简化代码,并提高开发效率。

通过使用这些注解,我们可以轻松地配置请求映射、绑定请求参数、处理响应等,使得代码更加简洁和可读性更高。

Spring MVC作为一个成熟的Web框架,其注解的使用在实际开发中非常广泛。掌握这些注解的使用,将有助于更好地理解和应用Spring MVC框架。

WPS表格技巧:如何添加线条及快速打开画线工具详细教程
新英雄年代:选角三大职业独家曝光,生存与荣耀的完美结合!