当前位置: 首页 > wzjs >正文

中国网站建设公司百度浏览器官网入口

中国网站建设公司,百度浏览器官网入口,深圳做网站比较,免费的云服务器哪家好前言 MVC架构应用 spring-boot-starter-web MVC 控制器注解 开发基本的Web应用 控制器注解 请求与响应 请求映射 常见匹配方式 参数绑定 JSON响应 ResponseEntity 构建RESTFUL RESTful服务特点 理解表述性状态转移 RESTful设计原则 Spring Boot实现RESTful AP…

前言

MVC架构应用

spring-boot-starter-web

MVC

控制器注解

开发基本的Web应用

控制器注解

请求与响应

请求映射

常见匹配方式

参数绑定

JSON响应

ResponseEntity

构建RESTFUL

RESTful服务特点

理解表述性状态转移

RESTful设计原则

Spring Boot实现RESTful API

Spring Doc生成API文档

文件上传与下载

文件上传原理

SpringBoot实现文件上传功能

MultipartFile接口

上传配置

数据验证与异常处理

全局异常处理

数据验证

案例

总结与拓展


前言

Spring Boot作为当前Java领域最流行的Web应用开发框架,以其"约定优于配置"的理念和快速开发能力,赢得了广大开发者的青睐。本文将全面介绍Spring Boot Web应用开发的核心知识体系,帮助开发者快速构建高效、可扩展的Web应用程序。

MVC架构应用

spring-boot-starter-web

  • Spring Boot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。
  • 创建SpringBoot项目勾选Spring Web选项后,会自动将spring-boot-starter-web组件加入到项目中。
  • spring-boot-starter-web启动器主要包括web、webmvc、json、tomcat等基础依赖组件,作用是提供Web开发场景所需的所有底层依赖。
    webmvc为Web开发的基础框架,json为JSON数据解析组件,tomcat为自带的容器依赖。 
<dependency><groupId>org.spingframework.boot</groupId><artifactId>sping-boot-starter-web</artifactId>
</dependency>

MVC

  • 使用Spring Boot开发Web应用程序时,Spring MVC是其背后的主要驱动力,它为Web应用提供了模型-视图-控制器(MVC)的架构和组件。
  • MVC,即模型(Model)、视图(View)、控制器(Controller),是一种设计模式,用于将应用程序分为三个主要组件。

控制器注解

  • @Controller注解,控制器类中的方法通常返回一个字符串,代表逻辑视图的名称。
  • 这个视图名将被解析为一个实际的视图,例如一个JSP、Thymeleaf或FreeMarker模板。
@Controller
public class HelloController {@RequestMapping("/hello")public String index(ModelMap map){map.addAttribute("name", "zhangsan");return "hello";}}
  • @RestController是@Controller和@ResponseBody注解的结合体。它标记一个类为控制器,且类中的每个方法默认返回数据而非视图。
  • @RestController注解会将返回的对象数据转换为JSON格式。
@RestController
public class HelloController {@RequestMapping("/user")public User getUser(){User user = new User();user.setUsername("zhangsan");user.setPassword("123");return user;}
}

开发基本的Web应用

  • Spring Boot没有严格的项目结构,但它有一些约定,一个典型的Spring Boot项目的包结构如下:
  • 构建一个能够响应用户请求的Web服务,只需要经过以下
创建一个带有@RestController注解的类。
引入spring-boot-starter-web依赖。
在此类中定义一些带有@RequestMapping或其相关注解的方法。
@RestController
public class HelloController {@RequestMapping(value="/hello")public String index(){return "Hello World!";}
}

控制器注解

  • 示例中返回了hello页面和name的数据,在前端页面中可以通过${name}参数获取后台返回的数据并显示。
  • @Controller通常与Thymeleaf模板引擎结合使用。
    @Controller
    public class HelloController {@RequestMapping("/hello")public String index(ModelMap map){map.addAttribute("name", "zhangsan");return "hello";}}

请求与响应

请求映射

RequestMappinq 是 Sprina MVC 中的核心注解,用于将请求路径映射到特定的控制器方法。

常见匹配方式

  • @RequestMapping ("/books") 会将所有到 /books 的请求映射到控制器方法
  • @RequestMapping 注解的 method 属性允许根据 HTTP 请求的方法(如 GET、POST、PUT、DELETE 等)来进一步限定请求的匹配:
    @RequestMapping (value = "/users", method = RequestMethod.GET)
  • 为了简化开发,Spring 还提供了一些快捷注解:
    • @GetMapping: HTTP 的 GET 方法。
    • @PostMapping: HTTP 的 POST 方法。
    • @PutMapping: HTTP 的 PUT 方法。
    • @DeleteMapping: HTTP 的 DELETE 方法。
    • @PatchMapping: HTTP 的 PATCH 方法。

参数绑定

  • 在 Web 应用中,服务端经常需要获取浏览器传递的数据,例如用于搜索查询、分页、排序和过滤等场景。
  • 在 Spring Boot 中,有多种注解可用于将请求中传递的数据绑定到处理器方法的参数中,以便获取并处理这些数据。常用的注解包括:
    • @PathVariable: 从 URI 模板中提取值,如从 /books/{id} 中提取 id。
    • @RequestParam: 获取查询参数或表单数据。
    • @RequestBody: 将请求主体(通常为 JSON 或 XML)绑定到方法参数。
    • @RequestHeader: 获取请求头的值。
    • @CookieValue: 从 cookie 中提取值。

JSON响应

  • 涉及 Spring Boot 框架里的spring - boot - starter - web依赖、Jackson 库,还有@RestController注解 。
  • Jackson 库可自动将 Java 对象(如 List、Map、Set、基本数据类型及其包装类等)序列化为 JSON 格式
  • 当使用@RestController时,Spring Boot 会借助 Jackson 完成对象序列化。

ResponseEntity

  • ResponseEntity用于全面控制HTTP响应,包括状态码,头部信息和响应体内容
@GetMapping("/item/{id}")
public ResponseEntity<Item> getItem(@PathVariable Long id) {Item item = itemService.findById(id); // 调用服务层获取Item,此处仅为模拟if (item != null) {// 如果找到Item,返回状态码200 OK和Item对象return ResponseEntity.ok(item);} else {// 如果没有找到Item,返回状态码404 Not Foundreturn ResponseEntity.notFound().build();}
}

构建RESTFUL

RESTful服务概述

  • RESTful 服务是基于 REST(Representational State Transfer,表述性状态转移)架构风格的 Web 服务。
  • REST 并不是一个标准,它更像一组客户端和服务端交互时的架构理念和设计原则,基于这种架构理念和设计原则的 Web API 更加简洁,更有层次。

RESTful服务特点

理解表述性状态转移

RESTful设计原则

Spring Boot实现RESTful API

Spring Doc生成API文档

  • springdoc-openapi 是一个专为 Spring Boot 应用程序设计的开源库,可以快速、简便地生成 API 文档,从而促进前后端团队的无缝协作。
  • springdoc-openapi 还内嵌了 Swagger UI,这为开发者和用户提供了一个直观的界面来浏览和测试 API。
  • 为了在 Spring Boot 项目中集成 springdoc-openapi,首先需要在项目的 pom.xml 中添加相应的依赖
    <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.1.0</version>
    </dependency>
  • 当 Spring Boot 应用启动后,springdoc-openapi 会自动执行以下操作:
    • 扫描控制器:扫描所有带有 @RestController 和 @Controller 注解的类。
    • 读取路由信息:分析每个控制器类及其方法上的路由信息(如 @GetMapping、@PostMapping、@PutMapping 等)。
    • 参数和返回值:读取方法的参数和返回值,通常通过 Java 反射和相关库(如 Jackson)实现。
    • OpenAPI 注解:如果使用了 OpenAPI 相关注解(如 @Operation、@ApiResponse、@Parameter 等),也会被解析并包含在文档中。
    • 生成文档:基于收集到的信息,生成 OpenAPI 3.0 + 的描述文档。

  • 默认情况下,Swagger UI 可以通过 http://localhost:8080/swagger-ui.html 访问(假设应用运行在默认的 8080 端口)

文件上传与下载

文件上传原理

  • 浏览器上传文件过程是基于HTTP协议进行的,并使用特定的请求类型和编码方式。来传输文件数据。

SpringBoot实现文件上传功能

  • 在 Spring Boot 中处理文件上传主要依赖于 Spring Web 的 MultipartFile 接口。
  • MultipartFile 是一个专门用于处理 HTTP 请求中上传文件的接口。
  • 当客户端(如浏览器)通过 multipart/form - data 格式的表单提交文件时,Spring MVC 可以将这些文件映射为 MultipartFile 对象,以便在服务器端进行处理。

MultipartFile接口

上传配置

  • spring.servlet.multipart.max-file-size 定义了单个上传文件的最大大小。如果文件超过此限制,将抛出异常。
  • spring.servlet.multipart.max-request-size 定义了整个 multipart 请求的最大大小,包括所有文件和表单数据。
  • 在 application.properties 中,可以配置文件上传的相关属性,例如文件大小限制和存储位置。

数据验证与异常处理

全局异常处理

  • 全局异常处理允许在一个集中的位置处理所有的异常,确保整体的用户体验和应用的响应行为始终如一。

  • 在 Spring Boot 中,全局异常处理通常是通过使用@RestControllerAdvice@ExceptionHandler注解来实现的。
  • @RestControllerAdvice@ControllerAdvice的特殊变种,它默认将结果作为 JSON 返回,非常适合 RESTful 服务。

数据验证

  • Spring Boot 通过集成 Hibernate Validator 和使用 Java 的 Bean Validation API,为开发者提供了一套强大、灵活且易于使用的数据验证机制。
  • 要在 Spring Boot 应用程序中使用数据验证,首先需要添加相关的依赖,找 pom.xml 中加入以下依赖:
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
    </dependency>

    案例

总结与拓展

Spring Boot极大地简化了Java Web应用的开发流程,使开发者能够专注于业务逻辑而非框架配置。通过本文的介绍,希望读者能够掌握Spring Boot Web开发的核心要点,构建出高性能、易维护的Web应用程序。

在实际项目中,建议结合具体业务场景,灵活运用Spring Boot提供的各种特性,并持续关注Spring生态的最新发展,如Spring Native、Spring GraphQL等新兴技术。

通过本文的讲解,你已了解 Spring Boot Web 应用开发从项目搭建、核心组件使用到请求响应处理、异常处理及实战案例的完整流程。实际开发中,还可拓展更多功能:

  • 集成缓存:使用 Spring Cache 结合 Redis 等缓存中间件,提升应用性能。
  • 安全认证:集成 Spring Security 或 JWT ,实现用户认证与授权,保障接口安全。
  • 部署优化:通过 Docker 容器化部署,结合 Jenkins 等实现持续集成与持续部署(CI/CD ),提升开发运维效率。
http://www.dtcms.com/wzjs/348606.html

相关文章:

  • 景区网站建设方案网站入口百度
  • 建设网站犀牛云站长之家最新域名查询
  • 可以做网站背景音乐的英文歌曲国际新闻网
  • 深圳市龙岗区住房和建设局官网网站站长之家
  • 国内有多少家做网站的企业搜索引擎营销特点
  • 什么是外包公司?优化营商环境应当坚持什么原则
  • 做网站一个月能挣多少c盘优化大师
  • 日报做的地方网站googleplay安卓版下载
  • 网站备案后内容网络营销外包网络推广
  • 榆林网站开发武汉seo公司排名
  • 深圳大鹏住房和建设局网站国际新闻报道
  • 新网站如何做sem南通网站快速收录
  • 众博彩做倍投的网站靠谱吗网络营销广告案例
  • 镇海区住房和建设交通局网站郑州网站制作
  • 设计类专业需要艺考吗成都网站seo外包
  • 网站改版的意义行业网站
  • 网站开发 估算 excel什么是搜索引擎营销
  • 网站建设安全架构免费推广网站入口
  • asp动态网站开发实训教程软文网站推广法
  • wamp做的网站上传东莞网站建设seo
  • 辽宁响应式网站费用互联网培训班学费多少
  • 网站建设价格热线未来网络营销的发展趋势
  • 免费自己做网站吗seo站内优化技巧
  • 建设学校网站的操作流程具体软文推广产品
  • 肇庆网站seo软件推广平台
  • 学习日语的好网站seo网站推广排名
  • 宁波正规网站建设方式网站免费高清素材软件
  • 无棣网站制作百度官网
  • 宁波专业做网站天津做网站的公司
  • 时时彩怎么建设网站如何百度收录自己的网站