SpringMVC常用注解吐血整理

文章内容为介绍Spring MVC中一些常用注解的详细用法和示例。

@Controller

@Controller 在企业应用开发中的核心作用主要有以下几点:

  1. 路由请求:@Controller 标记的类用于路由HTTP请求,通过方法级别的映射,将不同的URL请求分发到相应的处理方法。
  2. 数据处理:控制器方法可以接收和处理HTTP请求的参数,包括表单数据、URL参数和请求体数据。这允许开发者处理不同类型的用户输入。
  3. 调用服务层:控制器负责协调业务逻辑,通常会调用服务层的方法,将请求数据传递给服务层进行处理,然后将结果返回给客户端。
  4. 模型和视图:控制器方法负责构建数据模型,将数据传递给前端视图。这允许开发者渲染HTML页面或生成JSON响应,以满足客户端的需求。
  5. 处理异常:@Controller 可以处理应用中发生的异常,例如输入验证失败、数据访问错误等。通过异常处理方法,可以返回适当的错误响应。
  6. 拦截器支持:控制器支持拦截器,这些拦截器可以用于预处理和后处理请求,例如身份验证、日志记录和权限检查。
  7. 前后端分离:在前后端分离的应用中,控制器可以充当RESTful API的端点,处理JSON或XML请求,并返回相应的数据。
  8. 解耦和可维护性:@Controller 的使用有助于将应用程序的不同层分离开,实现了松耦合,提高了代码的可维护性和可测试性。
    总的来说,@Controller 在企业应用中起到了请求分发和业务协调的核心作用,使得应用程序能够响应不同的HTTP请求,处理业务逻辑,生成响应并提供良好的用户体验。它是将前端用户界面和后端业务逻辑连接在一起的关键组件。

示例:

@Controller
public class UserController {
    // 控制器方法
}

@RequestMapping

@RequestMapping 注解在企业应用开发中有着重要的核心作用,主要包括以下几个方面:

  1. 路由URL:@RequestMapping 允许你指定哪个HTTP请求(GET、POST、PUT、DELETE等)将触发控制器方法。这是将请求映射到特定处理程序的核心机制。
  2. 路径映射:你可以使用 @RequestMapping 注解来定义路径映射,将不同的URL请求映射到相应的控制器方法。这使得应用程序的URL结构清晰,并为不同的请求提供了可维护性。
  3. 请求参数处理:@RequestMapping 允许你指定如何处理请求参数,包括将它们映射到方法参数中、从请求中提取数据等。
  4. RESTful API:@RequestMapping 支持创建RESTful风格的API,通过指定不同的HTTP方法和URL模式,可以实现资源的创建、读取、更新和删除操作。
  5. 路径变量:使用 @PathVariable 注解,@RequestMapping 可以处理路径中的变量,允许你创建可接受不同参数的通用方法。
  6. 请求和响应处理:@RequestMapping 允许你指定请求和响应的数据格式,如JSON、XML、HTML等。这对于前后端分离应用和API开发非常有用。
  7. 内容协商:通过配置 produces 和 consumes 参数,@RequestMapping 允许你实现内容协商,以根据客户端需求发送不同格式的响应。
  8. 多个URL映射:一个方法可以有多个 @RequestMapping 注解,以匹配不同的URL。这可以用于简化请求处理方法的复杂性。
  9. 请求头和请求参数:你可以使用 headers 和 params 参数来定义请求头和请求参数的匹配条件,以决定是否触发处理方法。
  10. 异常处理:@RequestMapping 允许你定义异常处理方法,以捕获和处理请求过程中发生的异常。
  11. 拦截器支持:@RequestMapping 支持拦截器,这些拦截器可以用于在请求处理前和处理后执行额外的逻辑,如身份验证、日志记录和性能监控。
  12. URI模板和通配符:@RequestMapping 具有强大的模板和通配符支持,可以匹配多种URL模式,从简单的前缀匹配到高级的正则表达式。

总的来说,@RequestMapping 是企业应用开发中的核心注解之一,它允许你定义和配置控制器方法,以便接受不同类型的HTTP请求、处理请求参数和数据,构建响应,并提供清晰的URL路由。这是构建灵活、强大的Web应用程序的基础之一。

示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @RequestMapping("/list")
    public String userList() {
        // 处理用户列表请求
        return "user-list";
    }
}

@GetMapping

作用:将HTTP GET请求映射到方法。
示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @GetMapping("/list")
    public String userList() {
        // 处理用户列表请求
        return "user-list";
    }
}

@PostMapping

作用:将HTTP POST请求映射到方法。
示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @PostMapping("/create")
    public String createUser() {
        // 处理创建用户请求
        return "redirect:/users/list";
    }
}

@PathVariable

作用:将URL路径变量绑定到方法参数。
示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public String getUser(@PathVariable("id") Long userId) {
        // 根据用户ID获取用户信息
        return "user-details";
    }
}

@RequestParam

作用:将请求参数绑定到方法参数。
示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @GetMapping("/search")
    public String searchUser(@RequestParam("keyword") String keyword) {
        // 根据关键字搜索用户
        return "user-search";
    }
}

@ResponseBody

作用:将方法的返回值直接作为响应体返回。
示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    @ResponseBody
    public User getUser(@PathVariable("id") Long userId) {
        // 根据用户ID获取用户信息
        User user = userService.getUserById(userId);
        return user;
    }
}

@ModelAttribute

作用:将请求参数绑定到模型对象。
示例:

@Controller
@RequestMapping("/users")
public class UserController {
    @PostMapping("/create")
    public String createUser(@ModelAttribute("user") User user) {
        // 创建新用户
        userService.createUser(user);
        return "redirect:/users/list";
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI极客Jayden 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值