SpringBoot入门

目录

一、创建项目

二、项目结构

三、起步依赖

四、简单请求接口

控制类

1、无参数

2、简单参数

3、实体参数

4、数组集合参数

5、json参数

五、统一响应结果

result.java

HelloResponse.java

测试结果


一、创建项目

Spring官方骨架,可以理解为Spring官方为程序员提供一个搭建项目的模板。

二、项目结构

三、起步依赖

在SpringBoot的项目中,有很多的起步依赖,他们有一个共同的特征:就是以spring-boot-starter-作为开头。形如spring-boot-starter-xxx这类的依赖,都为起步依赖。

常见的起步依赖:

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖

  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

 

四、简单请求接口

控制类

@RestController
public class HelloController {


}

@RestController 是一个注解(annotation),在Java Spring框架中使用。它的作用是将一个类标记为一个RESTful风格的控制器(Controller)。在Spring中,控制器用于处理HTTP请求并返回HTTP响应,通常用于构建Web应用程序的后端。

@RestController 注解结合了 @Controller@ResponseBody 注解的功能。让我们简要了解一下这两个注解:

  1. @Controller: 用于将一个类标记为Spring MVC中的控制器,它处理客户端的HTTP请求并将处理结果返回给客户端。通常,它使用视图解析器将模型数据渲染成视图(HTML页面)并返回给客户端。但对于RESTful风格的控制器,不需要渲染视图,而是直接将数据以JSON或XML格式返回给客户端。

  2. @ResponseBody: 通常结合在@Controller标记的方法上,用于指示该方法返回的是HTTP响应的主体部分(ResponseBody),而不是渲染成视图。返回的数据会直接发送给客户端,而不会经过视图解析器。

当一个类被标记为 @RestController 时,其中的方法默认行为是将返回的Java对象直接转换为JSON格式,并将其作为HTTP响应的主体部分返回给客户端。这非常方便,特别是在构建RESTful API时,因为你无需显式地处理对象转换为JSON的过程,Spring会自动处理这一点。

1、无参数

 // 无参数
    @RequestMapping("/hello")
    public String hello(){

        return "你好";
    }

2、简单参数

 // 简单参数
    @RequestMapping("/simpleParam")
    public String simpleParam(String name, int age){
        System.out.println(name + " : " + age);
        return "请求成功";
    }


 // 参数名不一致
    @RequestMapping("/simpleParam2")
    public String simpleParam2(@RequestParam("name")String userName, int age){

        System.out.println(userName + ": " + age);
        return "请求成功~";
    }

3、实体参数

 // 实体参数
    @RequestMapping("/simplePojo")
    public String simplePojo(User user){

        System.out.println(user);

        return "请求成功~";
    }

    // 复杂实体参数
    @RequestMapping("/complexPojo")
    public  String complexPojo(User user){

        System.out.println(user);
        return "请求成功";

    }

4、数组集合参数

 //数组参数
    @RequestMapping("/arrayParam")
    public String arrayParam(String[] arr){

        System.out.println(Arrays.toString(arr));
        return "请求成功";

    }

    //集合参数
    @RequestMapping("/listParam")
    public String listParam(@RequestParam List<String> arr){
        System.out.println(arr);

        return "请求成功";
    }

5、json参数

服务端Controller方法接收JSON格式数据:

  • 传递json格式的参数,在Controller中会使用实体类进行封装。

  • 封装规则:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数。需要使用 @RequestBody标识。

//JSON参数
    // 封装规则:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数。
    // 需要使用 @RequestBody标识。
    @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "请求成功";
    }

    // 路径参数
    @RequestMapping("/path/{id}/{name}")
    public String pathParam(@PathVariable int id,@PathVariable  String name){

        System.out.println("路径参数:" + id + " "+ name);
        return "请求成功";
    }

五、统一响应结果

result.java

统一的返回结果使用类来描述,在这个结果中包含:

  • 响应状态码:当前请求是成功,还是失败

  • 状态码信息:给页面的提示信息

  • 返回的数据:给前端响应的数据(字符串、对象、集合)

package com.zqh.demo.pojo;

public class Result {
    private Integer code;//响应码,1 代表成功; 0 代表失败
    private String msg;  //响应码 描述字符串
    private Object data; //返回的数据

    public Result() { }
    public Result(Integer code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    //增删改 成功响应(不需要给前端返回数据)
    public static Result success(){
        return new Result(1,"success",null);
    }
    //查询 成功响应(把查询结果做为返回数据响应给前端)
    public static Result success(Object data){
        return new Result(1,"success",data);
    }
    //失败响应
    public static Result error(String msg){
        return new Result(0,msg,null);
    }
}

HelloResponse.java

package com.zqh.demo.controller;


import com.zqh.demo.pojo.Address;
import com.zqh.demo.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

// 统一相应结果
@RestController
public class HelloResponse {


    // 无参数
    @RequestMapping("/helloRes")
    public Result hello(){

        System.out.println("Hello World ~");

        return Result.success("hello");
    }

    // 响应实例对象
    @RequestMapping("/getadr")
    public Result getAddress() {
        Address address = new Address();
        address.setProvince("广东");
        address.setCity("惠州市");

        System.out.println(address);

        return Result.success(address);
    }


}


测试结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

依恋、阳光

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

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

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

打赏作者

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

抵扣说明:

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

余额充值