@RequestMapping和@ResponseBody

@RequestMapping

用来生成地址,例如:

@Controller
public class StudentController {

   
    //生成的接口地址为:http://localhost:8080/student
    //等价于@GetMapping("student")
    @RequestMapping(value = "student",method = RequestMethod.GET)

    public String student(){
        return "这是学生接口";
    }


    //生成的接口地址为:http://localhost:8080/student/name
    //等价于@PostMapping("student/name")
    @RequestMapping(value = "student/name",method = RequestMethod.POST)
    public String studentName(){
        return "这是学生姓名接口";
    }

    
}

@RequestMapping也可以放在类上,相当于该类中的所有方法地址前先加上类上@RequestMapping中的地址,例如:

@Controller
@RequestMapping("class")
public class StudentController {

   
    //生成的接口地址为:http://localhost:8080/class/student
    //等价于@GetMapping("student")
    @RequestMapping(value = "student",method = RequestMethod.GET)

    public String student(){
        return "这是学生接口";
    }


    //生成的接口地址为:http://localhost:8080/class/student/name
    //等价于@PostMapping("student/name")
    @RequestMapping(value = "student/name",method = RequestMethod.POST)
    public String studentName(){
        return "这是学生姓名接口";
    }

    
}

@ResponseBody

将接口的返回结果以JSON的格式返回;例如:

@Controller
public class StudentController {

   
    @ResponseBody
    @RequestMapping(value = "student",method = RequestMethod.GET)
    public Student student(){
        Student student = new Student();
        student.setId("123456");
        student.setName("张三");
        student.setAge(20);
        return student;
    }

    
}

这里可以看到方法的返回值类型是Student对象,调用接口的结果如下图,结果自动转换为了JSON格式一般在前后端的交互中数据通常是以JSON格式来交互的

 @ResponseBody注解也可以放在类上,表示该类下的所有方法的返回值都会转换成JSON,相当于该类中的所有方法上都加上了@ResponseBody注解,例如:

@Controller
@ResponseBody
public class StudentController {
   
    @RequestMapping(value = "student",method = RequestMethod.GET)
    public Student student(){
        Student student = new Student();
        student.setId("123456");
        student.setName("张三");
        student.setAge(20);
        return student;
    }
}

接口结果同样为JSON格式:

 还有一个最常用的方法,用@RestController来代替@Controller;

@RestController就相当于是@Controller和@ResponseBody的组合应用;

这种方式使用的最多也最方便!!!     例如:

@RestController
public class StudentController {
   
    @RequestMapping(value = "student",method = RequestMethod.GET)
    public Student student(){
        Student student = new Student();
        student.setId("123456");
        student.setName("张三");
        student.setAge(20);
        return student;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值