基于SpringBoot的Web前后端分离开发

基于SpringBoot的Web前后端分离开发

SpringBoot主程序

@SpringBootApplication

这是一个SpringBoot启动类的注解。

可以完成一系列自动化配置。

@SpringBootApplication
public class DemoApplication {

   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }

}

开发一个URL

开发一个可以在浏览器直接访问的URL地址,也就是常说的API接口,前后端分离后一般都是RESTful风格

返回的数据是Json格式,因此有了@RequestBody注解

  • @Controller
  • @RequestMapping(“url地址”)
  • @ResponseBody

@Controller 可以让你的类成为一个API接口类

@RequestMapping(“url地址”) 可以让你用一个方法开发出一个url接口

@ResponseBody 可以让你返回的数据为json格式

因此在这样的环境下,业内有了 controller 层,即建一个 controller 包来放置你的API类

@Controller
public class DemoController {

    @RequestMapping("/demo")
    @ResponseBody
    public String print(){
        System.out.println("钟小湖");
        return "哈哈";
    }
}

带参数的URL

例如Get请求

实现也很简单

直接在方法上加入参数即可

@Controller
public class DemoController {
   

    @RequestMapping("/demo")
    @ResponseBody
    public String print(String name){
   
        System.out.println("Hello," + name);
        return name;
    }
}

public String print(String name)

然后你也可以更花哨点使用别名对name进行映射,或者前端工程师已经规定好了参数名,你迫于无奈。

举个例子:请求体参数是nick,你想在后台转化为name

nick = name

这时候 @RequestParam 注解就发挥作用了

@Controller
public class DemoController {
   

    @RequestMapping("/demo")
    @ResponseBody
    public String print(@RequestParam("nick") String name){
   
        System.out.println("Hello," + name);
        return name;
    }
}

问题来了,RESTful 讲究把参数直接通过网址的形式传送

例如 localhost:8080/demo/乐心湖

这时候 @PathVariable 注解就出来了

@Controller
public class DemoController {
   

    @RequestMapping("/demo/{name}")
    @ResponseBody
    public String print(@PathVariable String name){
   
        System.out.println("Hello," + name);
        return name;
    }
}

重点: @RequestMapping("/demo/{name}") 中的 {} 符号

多个参数也是可以的

@RequestMapping("/demo/{id}/{name}")
@ResponseBody
public String print(@PathVariable String name, @PathVariable String id) {
   
    System.out.println(id + name);
    return id + name;
}

还有更高级的自定义

@PathVariable(“映射的参数”)

例如:

@PathVariable("name") String name
//这样就可以把地址上的name变成程序内部的name了。
//就是最基础的映射
//因为name本身结果也是name,所以SpringMvc会自动帮我们映射,这个映射是没有必要写的。

所以,很多人习惯性把映射也写上,以为这是必需要的。

事实上你只需确保你的参数名不要瞎改,很多多余工作我们也就省去了。

值得一提的是:这一切的注解和花哨操作都是基于两个接口

HttpServletRequest

HttpServletResponse

例如我们使用 @RequestParam 获取了请求头中的name参数

也可以用老大哥 HttpServletRequest 实现

@Controller
public class DemoController {
   

    @RequestMapping("/demo")
    @ResponseBody
    public String print(HttpServletRequ
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值