2.3 sringboot框架中的控制类(Controller)以及部分注解讲解

控制类方法

是处理 HTTP 请求的核心方法,在 Spring MVC 中用于定义一个控制器类中的具体处理逻辑。通常,控制器方法用于响应特定的 HTTP 请求,并根据请求执行相应的业务逻辑。

在 Spring 中,控制器方法通常配合 @RequestMapping 或更具体的注解(如 @GetMapping、@PostMapping 等)来指定如何处理不同的请求。

关于@注解的用处:写个普通类,但是在类上加上@注解后就会被框架识别,完成特殊的用处。

@RestController
是@Conntroller + @ResponseBody的注解
其中,@ResponseBody可以将功能接口(方法)返回值类型为对象和集合的自动转化成json对象或者数组对象响应给客户端
是 Spring Framework 中的一部分,主要用于创建 RESTful Web 服务。它结合了 @Controller 和 @ResponseBody 注解的功能,简化了开发过程。监听客户端发来的请求。
总结:告诉框架下面的类是请求处理类。
示例:

@RestController
public class RequestController() {
	// 路径解析方法
	@RequestMapping(/test)
	public String test(int path)
	{
		// ...
		return ok;
	}
}

@RequestMapping(/路径名)
在此注释之下的方法需要形参名与客户端请求参数名一致才能成功接收,若不一致也可通过@RequestParam来解决。

是 Spring MVC 中一个非常重要的注解,用来将 HTTP 请求映射到控制器的方法上。它可以用于类或者方法上,通过配置不同的参数,可以映射到具体的 URL 路径、请求方式(如 GET、POST)等。

主要功能:1.映射 URL 路径:将 HTTP 请求的 URL 路径与控制器的方法绑定。
2.指定请求方式:可以指定该方法响应的 HTTP 请求类型,比如 GET、POST、PUT、DELETE 等。
3.处理请求参数:通过 @RequestMapping 可以处理请求中的参数(如路径参数、查询参数等)。

@RequestParam
提取http查询参数的注解。
此注解可选择的参数,value=“客户端传来的参数名”,required=“true或者false”。在后面再跟上不一致的形参名则可成功传至形参。

示例:

package com.itheima.demo02.Controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LoginController {
    @RequestMapping("/login")
    public String login(@RequestParam(value = "name",required = false) String username, String password) {
        System.out.println(username + "的密码是" + password);
        return "ok";
    }
}

@DateTimeFormat
和@RequestParam注解的目的类似,不过要让函数成功接收的是日期类参数。
服务端请求响应方法代码示例:

    // 传递时间类型参数
    @RequestMapping("/datetime")
    public String datetime(@DateTimeFormat(pattern = "yyyy年MM月dd日HH点mm分ss秒") LocalDateTime date)
    {
        System.out.println(date);
        return "ok";
    }


客户端请求参数value格式要与服务端pattern中设置的一致。

@RequestBody
接收json格式参数
服务端请求响应示例代码:

    // 传递json格式的参数
    @RequestMapping("/jsonParam")
    public String jsonParm(@RequestBody User user) {
        System.out.println(user);
        return "ok";
    }

客户端传递json格式数据参数:

{
    "name":"貂蝉",
    "age":"12",
    "address":{
        "city":"杭州",
        "street":"西湖区"
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值