【Springboot】——项目的创建与请求参数应用

💻博主现有专栏:

C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,设计模式、Python机器学习、Springboot等
🥏主页链接:

Y小夜-CSDN博客

目录

🎯了解spring

🎯Springboot的优势所在

🎯编写一个Springboot-Web-maven工程

💻创建工程,勾选依赖

✨可能出现测错误

💻定义类,添加注解

💻进行测试

🎯请求参数注解

💻简单参数

💻实体参数

💻数组集合参数

💻日期参数

💻Json参数

💻路径参数


🎯了解spring

官网: spring官方网站

上面解释道:

对每个人来说,Spring使Java编程变得更快、更容易、更安全。Spring对速度、简单性和生产力的关注使其成为世界上最流行的Java框架。

🎯Springboot的优势所在

  1. **快速开发:**Spring Boot 允许开发人员快速创建可部署应用程序的框架,大量减少了传统 Spring 应用程序的配置。Spring Boot 内置了许多常见的功能,例如:嵌入式服务器、安全性、指标和运行状况检查等。

  2. **简单配置:**Spring Boot 配置简单且易于理解。Spring Boot 允许使用 application.properties 或 application.yml 文件来进行配置。

  3. **自动配置:**Spring Boot 自动配置使得开发人员不必手动配置 Spring 应用程序的许多组件。Spring Boot会根据类路径中的jar包自动配置 Spring 应用程序。

  4. **微服务支持:**Spring Boot 为构建微服务提供了良好的支持。Spring Boot 集成了诸多微服务框架,如:Spring Cloud Netflix、Spring Cloud Consul、Spring Cloud Config 等,使开发人员实现微服务架构变得更加容易。

  5. 测试支持:Spring Boot 提供了丰富的测试支持,开发人员可以使用 JUnit 或者其他测试框架进行单元测试和集成测试。

  6. **生态系统:**Spring Boot 的生态环境非常丰富,有大量的插件可以帮助开发人员快速集成开发工具、数据库、消息队列等。

总之,Spring Boot 已经成为了开发人员创建 Web 应用程序、RESTful API 和微服务的首选工具之一,它的优势在于简化了配置、提高了开发效率、支持微服务、提供了丰富的测试支持和生态系统。

🎯编写一个Springboot-Web-maven工程

💻创建工程,勾选依赖

1.new一个新的项目,选择Spring Initializr(如果没有这个,可以下一个Spring Initializr插件,就可以)

2.选择服务URL,默认的就行

3.选择存放的位置,以及Type选择Maven

4.选择JDK版本以及Java版本


✨可能出现测错误

  1. 博主的JDK是11版本,默认的没有11版本的,这里可以把上面的url地址改为阿里云的镜像地址 https://start.aliyun.com,就可以选择11版本的了。
  2. 如果url旁边有红色感叹号,报连接超时的错误或者无法进行下下一步,解决方案如下:

点击File------》Settings

搜索Http Proxy

点击Auto-detect proxy settings,输入刚刚设置的url地址

进行测试连接,点击Check connection

输入连接URL,显示连接成功。


5.解决错误之后,回到前几步,勾选Spring Web,导入依赖,点击创建

💻定义类,添加注解

在SpringBootApplication类的同级目录下,创建一个HelloController类(一定要是同级目录下!,涉及到扫描范围,以后再讲)

在HelloController类中编写代码

java 复制代码
@RestController
public class HelloController {
    @RequestMapping("/aa")
    public String a(){
        System.out.printf("你好");
        return  "你好";
    }
}

这是一个简单的 Spring Boot 控制器类,使用了@RestController注解来标识这是一个 RESTful 风格的控制器类。其中定义了一个名为a()的方法,并使用@RequestMapping("/aa")注解将该方法映射到 "/aa" 的请求路径上。

在这个方法中,使用了System.out.printf("你好")语句来在控制台输出"你好",然后通过return语句返回字符串"你好"作为响应内容。

当访问应用程序的 "/aa" 路径时,该方法会被调用,控制台将输出"你好",并将"你好"作为响应内容返回给客户端。

💻进行测试

复制代码
运行SpringBootApplication类

在浏览器中输入

java 复制代码
http://localhost:8080/aa

页面上:

控制台输出一个"你好"

🎯请求参数注解

💻简单参数

简单参数:如果方法形参名名称不匹配,可以使用@RequestParam完成映射。

@RequestParam是一种常用的注解,用于获取HTTP请求中的参数值。通过使用@RequestParam注解,我们可以将请求参数映射到方法中的参数上。

例如,在Java Spring框架中,我们可以这样使用@RequestParam注解:

java 复制代码
@RequestMapping("/example")
public String exampleMethod(@RequestParam("paramName") String paramValue) {
    // 处理业务逻辑
    return "result";
}

在上面的例子中,我们使用@RequestParam注解来绑定名为"paramName"的请求参数到方法的paramValue参数上。

请注意,@RequestParam注解还有其他属性可以配置,例如设置参数的默认值、是否必需等。具体使用方式可以根据你所使用的框架和语言进行调整。

💻实体参数

如果你需要将多个请求参数绑定到一个实体参数上,可以使用实体类作为方法的参数,并通过@RequestParam注解来指定每个属性对应的请求参数。这样,框架会自动将请求参数的值映射到实体类的属性上。

java 复制代码
@RequestMapping("/example")
public String exampleMethod(@RequestParam("param1") String param1, 
                            @RequestParam("param2") int param2,
                            @RequestParam("param3") boolean param3) {
    // 处理业务逻辑
    return "result";
}

在上面的例子中,我们通过@RequestParam注解将三个请求参数分别绑定到了方法的param1、param2和param3参数上。

如果你想将多个参数绑定到一个实体类中,首先需要创建一个包含对应属性的实体类。然后,在方法参数中使用该实体类作为参数,并添加@RequestParam注解来指定请求参数的映射关系。

例如,假设我们有一个User实体类:

java 复制代码
public class User {
    private String username;
    private int age;
    // 其他属性
    
    // getter和setter方法
}

然后,在Controller中可以这样使用:

java 复制代码
@RequestMapping("/user")
public String createUser(User user) {
    // 处理业务逻辑,使用user对象的属性值
    return "result";
}

💻数组集合参数

在 Spring Boot 中,你可以通过使用数组或集合作为方法的参数来接收多个参数。这样可以方便地处理多个值传递给控制器的情况。

以下是使用数组和集合作为参数的示例:

java 复制代码
@RestController
public class MyController {
    
    @GetMapping("/array-example")
    public String handleArrayExample(String[] values) {
        // 处理数组参数
        for (String value : values) {
            System.out.println(value);
        }
        
        return "Array Example";
    }
    
    @GetMapping("/list-example")
    public String handleListExample( List<String> values) {
        // 处理集合参数
        for (String value : values) {
            System.out.println(value);
        }
        
        return "List Example";
    }
}

💻日期参数

在Java中,常用的表示日期的数据类型有java.util.Datejava.time.LocalDatejava.sql.Date等。具体选择哪个类型取决于你的项目需求和开发环境。

以下是一个示例,演示如何将日期参数绑定到方法的参数上:

java 复制代码
@RequestMapping("/example")
public String exampleMethod(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date) {
    // 处理业务逻辑
    return "result";
}

在上面的例子中,我们使用@RequestParam注解将名为"date"的请求参数映射到方法的date参数上,同时使用@DateTimeFormat注解来指定日期格式。

💻Json参数

如果你需要从请求体中获取JSON格式的参数并将其绑定到方法的参数上,可以使用@RequestBody注解。

在Controller方法中,添加一个使用@RequestBody注解的参数,Spring框架会自动将请求体中的JSON数据转换为对应的Java对象。

java 复制代码
@RequestMapping("/example")
public String exampleMethod(@RequestBody ExampleObject exampleObject) {
    // 处理业务逻辑,使用exampleObject对象的属性值
    return "result";
}

在上面的例子中,我们使用@RequestBody注解将请求体中的JSON数据映射到ExampleObject对象上,然后可以直接使用ExampleObject对象的属性值进行业务逻辑处理。

请注意,请求体中的JSON数据需要与ExampleObject对象的属性名和类型相匹配,否则可能会导致转换失败或出现数据不一致的问题。

💻路径参数

如果你需要从URL路径中获取参数并将其绑定到方法的参数上,可以使用@PathVariable注解。

在Controller方法中,添加一个使用@PathVariable注解的参数,Spring框架会自动将URL路径中的参数值传递给该参数。

java 复制代码
@RequestMapping("/example/{id}")
public String exampleMethod(@PathVariable String id) {
    // 处理业务逻辑,使用id参数
    return "result";
}

可以在注解中不指定参数名,即:@PathVariable String id。这样,Spring会根据参数名和路径中的占位符进行自动匹配。

相关推荐
考虑考虑29 分钟前
JDK9中的dropWhile
java·后端·java ee
想躺平的咸鱼干38 分钟前
Volatile解决指令重排和单例模式
java·开发语言·单例模式·线程·并发编程
hqxstudying1 小时前
java依赖注入方法
java·spring·log4j·ioc·依赖
·云扬·1 小时前
【Java源码阅读系列37】深度解读Java BufferedReader 源码
java·开发语言
martinzh2 小时前
Spring AI 项目介绍
后端
Bug退退退1232 小时前
RabbitMQ 高级特性之重试机制
java·分布式·spring·rabbitmq
小皮侠2 小时前
nginx的使用
java·运维·服务器·前端·git·nginx·github
前端付豪2 小时前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
爱学习的小学渣2 小时前
关系型数据库
后端
武子康2 小时前
大数据-33 HBase 整体架构 HMaster HRegion
大数据·后端·hbase