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

SpringBoot 整合Web开放

以下是 Spring Boot 整合 Web 开发更为详细的过程:

开发环境准备
  1. 安装 Java 开发工具包(JDK)
    确保电脑上安装了合适版本的 JDK,推荐使用 Java 8 及以上版本。可以从 Oracle 官网(针对 Oracle JDK)或者 OpenJDK 官网(针对 OpenJDK)下载对应操作系统版本的安装包进行安装,安装完成后配置好环境变量(如JAVA_HOME指向 JDK 的安装目录,并且将%JAVA_HOME%in添加到系统的PATH环境变量中),通过在命令行输入java -version可以验证安装是否成功以及查看版本信息。
  2. 选择集成开发环境(IDE)
    常用的有 IntelliJ IDEA 和 Eclipse 等。以 IntelliJ IDEA 为例,下载对应版本(社区版免费,功能基本能满足开发需求;旗舰版功能更丰富但需付费)进行安装,安装完成后启动,可根据个人习惯进行一些初始设置,比如主题、字体等。
创建 Spring Boot 项目
  1. 使用 Spring Initializr(在 IDE 中操作,以 IntelliJ IDEA 为例)
    • 打开 IntelliJ IDEA,点击Create New Project(创建新项目),在弹出的窗口中选择Spring Initializr,然后点击Next(下一步)。
    • 在接下来的页面中,指定项目的相关基本信息,如Group(通常是公司域名倒序等形式,用于标识项目所属的组织,例如com.example)、Artifact(项目的唯一标识符,也就是项目名称,比如my-web-project)、Version(项目版本号,初始一般设为0.0.1-SNAPSHOT)等,同时选择项目的语言(一般为 Java)和打包方式(可以是Jar或者War,对于大多数独立运行的 Spring Boot 项目选择Jar即可),点击Next
    • Dependencies(依赖)选择页面,勾选Spring Web依赖,这是进行 Web 开发的核心依赖,会自动引入如 Spring MVC 等相关库,用于处理 HTTP 请求、路由等 Web 相关功能。还可以根据后续可能需要的其他功能勾选相应的依赖,例如如果要连接数据库进行数据持久化操作,可以勾选Spring Data JPA以及对应数据库的驱动依赖(如MySQL Driver等),勾选完成后点击Next,然后指定项目的存储路径并点击Finish,项目就创建完成了。
  2. 项目结构解析
    创建好的 Spring Boot 项目有其特定的结构,主要包含以下关键部分:
    • src/main/java:用于存放 Java 源代码,我们编写的控制器类、服务类、实体类等代码都会放在这个目录下对应的包结构中。
    • src/main/resources:存放项目的各种资源文件,比如配置文件(application.propertiesapplication.yml)、静态资源(如 HTML、CSS、JavaScript 文件等,不过在纯后端开发中可能用得相对少些,如果是前后端不分离项目就会涉及较多)。
    • src/test/java:用于存放项目的单元测试等相关代码,可对编写的各类功能代码进行测试验证其正确性。
编写控制器类(Controller)
  1. 创建基础的控制器类
    src/main/java下按照包名规范创建包(例如com.example.mywebproject.controller),然后在该包下创建一个 Java 类,如下所示:

    这里:

  2. @RestController是一个组合注解,相当于同时使用了@Controller(标识该类为控制器类,负责处理请求)和@ResponseBody(表示类中方法返回的数据直接作为响应体内容,而不是去寻找视图进行解析渲染,常用于返回 JSON 数据或者简单文本等情况),简化了开发中对于返回内容处理的配置。

  3. @GetMapping("/hello")注解将sayHello方法与 HTTP 的GET请求进行映射,当客户端发送GET请求到/hello这个路径时,该方法就会被执行并返回相应的响应内容,这里简单返回了一个文本字符串。

  4. 处理不同请求类型和参数的方法扩展

    • 处理 POST 请求
      添加一个处理 POST 请求的方法到上述控制器类中,例如:

      这里@PostMapping("/hello")表示该方法处理路径为/hello的 POST 请求,@RequestBody注解用于获取请求体中的内容,并将其作为字符串参数传入方法中进行处理,方法内可以根据业务逻辑对请求体内容做进一步操作,比如解析 JSON 格式的数据、验证数据等,最后返回处理后的响应内容。

    • 处理带路径参数的请求
      假设要根据不同的用户名来返回个性化的问候语,可以这样写方法:

      @GetMapping("/hello/{username}")中,{username}定义了一个路径变量,通过@PathVariable注解将其绑定到方法的参数username上,这样当客户端发送GET请求到类似/hello/john这样的路径时(john就是具体的路径变量值),方法就能获取到john并返回Hello, john!这样的个性化响应。

      配置文件相关操作
    • 基本配置(修改服务器端口、上下文路径等)
      Spring Boot 的配置文件主要有两种格式,application.properties(键值对格式)和application.yml(YAML 格式,更具层级结构,相对简洁),放在src/main/resources目录下。

      • 使用application.properties配置服务器端口和上下文路径示例

      • 使用application.yml配置的等效示例

        配置完成后,启动项目时服务器就会按照配置的端口和上下文路径来监听请求和提供服务。例如,上面配置后,访问的 URL 路径就要基于http://localhost:8081/myapp来构建了。

      • 更多配置拓展(如配置日志级别等)
        除了上述基本的 Web 相关配置,还可以配置很多其他方面的内容,比如设置日志级别来控制日志输出的详细程度,示例如下:application.yml中对应的配置如下:

        项目启动与测试
      • 启动项目
        在 IntelliJ IDEA 中,可以直接找到项目的主类(一般包含public static void main(String[] args)方法,并且通常会有SpringApplication.run(MyWebProjectApplication.class, args);这样的启动语句,MyWebProjectApplication就是根据项目创建时填写的Artifact名称生成的主类名),右键点击该主类,选择Run(运行),就可以启动 Spring Boot 项目了。启动后,可以在控制台看到服务器启动的相关信息,比如监听的端口等。

      • 测试请求
        根据之前编写的控制器方法以及配置的相关路径等信息,使用浏览器或者工具(如 Postman 等用于发送各种 HTTP 请求进行测试)来测试请求。

        • 例如对于之前编写的GET请求方法(/hello路径那个),打开浏览器,输入对应的 URL(如果按照前面配置了端口和上下文路径,就是http://localhost:8081/myapp/hello,否则默认是http://localhost:8080/hello),就能看到页面显示相应的响应内容(如Hello from Spring Boot Web!)。
        • 对于 POST 请求的测试,可以使用 Postman,在 Postman 中选择POST方法,输入对应的 URL(同样根据配置情况填写完整路径),在请求体中输入相应的内容(比如简单文本或者符合业务要求的 JSON 数据等),点击发送按钮,查看返回的响应内容是否符合预期。
      • 通过以上详细的步骤,就可以完成 Spring Boot 整合 Web 开发的基础操作,并可以在此基础上根据具体的业务需求不断扩展功能、优化代码等,开发出功能丰富的 Web 应用。


http://www.kler.cn/a/452900.html

相关文章:

  • 独立站是什么?有什么用?
  • SLAM/数字图象处理基础
  • 网络工程师常用软件之PING测试工具
  • Docker部署Sentinel
  • 机器学习之KNN算法预测数据和数据可视化
  • yii2 手动添加 phpoffice\phpexcel
  • 推动开源数据生态:SeaTunnel ByConity技术沙龙精彩回顾
  • Qt 的信号槽机制详解:之信号槽引发的 Segmentation Fault 问题拆析(上)
  • Linux高级--2.4.1 网络概念(分层、TCP)
  • webpakc介绍
  • 一个从oracle使用spool导出数据到kadb的脚本
  • 基于Springcloud的智能社区服务系统
  • 浅谈Java注解之ResponseBody
  • CentOS7-yum服务器的搭建
  • Pytorch详解 train() 和 eval() 模式会影响Layer Norm吗?(中英双语)
  • 无人机之惯性导航概述!
  • 【ES6复习笔记】Map(14)
  • YOLO11改进-模块-引入星型运算Star Blocks
  • 在vscode中的ESP-IDF插件中使用Arduino框架作为组件
  • 鸿蒙-什么是Ability Kit
  • 人才画像系统如何支撑企业的人才战略落地
  • 【React 基础及高级用法】
  • Docker安装Neo4j
  • SQL进阶技巧:如何求解最大矩形面积问题? | LeetCode 84- 柱状图中最大的矩形
  • 【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
  • 浅谈TARA在汽车网络安全中的关键角色