(自用)Java学习-4.23(SpringMVC注解,REST)

Spring MVC框架概述

Spring MVC 是Spring框架的一部分,用于开发Web应用程序。它基于**MVC(模型-视图-控制器)**设计模式,通过 DispatcherServlet 进行请求的集中处理。Spring MVC提供了对请求的灵活处理,支持多种视图技术(如JSP、Thymeleaf等)和多种请求方式(GET、POST等)。

核心注解

  1. @RequestMapping:

    • 用于将HTTP请求映射到处理方法,可以通过设置路径和HTTP方法类型来定义请求的处理规则。

    @RequestMapping("/user") public String getUserInfo() { return "userInfo"; }

  2. @RequestParam:

    • 用于从请求中获取参数并绑定到方法的参数上。可以指定是否必需、默认值等。

    @RequestMapping("/user") public String getUser(@RequestParam("id") int userId) { return "User ID: " + userId; }

  3. @RequestHeader:

    • 将HTTP请求头的值绑定到方法的参数上,常用于获取请求的用户代理、语言等信息。

    @RequestMapping("/user") public String getUser(@RequestHeader("User-Agent") String userAgent) { return "User-Agent: " + userAgent; }

  4. @ResponseBody:

    • 表示方法的返回值应该直接写入响应体,通常用于返回JSON或XML数据。

    @RequestMapping("/user") @ResponseBody public User getUser() { return new User("John", "Doe"); }

  5. @RequestBody:

    • 用于将请求体的内容转换为方法参数,通常用于处理JSON或XML格式的数据。

    @RequestMapping("/user") @ResponseBody public String createUser(@RequestBody User user) { return "User created: " + user.getName(); }

  6. @RestController:

    • 组合了 @Controller@ResponseBody,常用于开发RESTful API,返回的数据直接写入响应体。

    @RestController @RequestMapping("/user") public class UserController { @GetMapping public User getUser() { return new User("John", "Doe"); } }

REST风格编程

  • RESTful API:通过URI标识资源,并使用标准的HTTP方法进行操作。Spring MVC支持这种风格的路径映射,利用@PathVariable注解可以将路径中的变量动态绑定到方法参数。

    @RequestMapping("/user/{id}") public String getUser(@PathVariable("id") int userId) { return "User ID: " + userId; }

文件上传与下载

  • 文件上传:表单的 enctype 设置为 multipart/form-data,文件通过 MultipartFile 类型接收。Spring提供了对文件上传的支持,文件可以保存到指定路径。

  • 文件下载:通过设置响应头,指导浏览器处理文件下载。可以通过 ResponseEntity 返回文件并设置适当的文件类型。

拦截器与过滤器

  • 拦截器:用于在请求到达控制器前或响应返回后进行处理。可以实现日志记录、权限检查等功能,专门用于Spring MVC框架。

  • 过滤器:更通用,能够处理所有类型的请求,适用于跨域处理、字符编码等场景。

Spring的核心概念

  1. IoC(控制反转)

    • Spring通过IoC容器管理应用程序的对象,自动处理对象的创建和依赖关系,减少了类之间的耦合。

  2. AOP(面向切面编程)

    • 允许将横切关注点(如日志、事务)与核心业务逻辑分离,使得代码更加简洁和易于维护。

Spring IoC容器

  • Spring的IoC容器是管理对象及其依赖的核心组件,支持通过XML配置或Java配置类来声明和管理bean。通过容器提供的依赖注入,开发者可以将类的依赖关系从硬编码中解耦出来,提高了系统的灵活性和可维护性。

你可能感兴趣的:(Java学习之路,java,学习,开发语言,spring)