首页 > 经验记录 > SpringBoot实现前后端分离、以及RESTful个人理解

SpringBoot实现前后端分离、以及RESTful个人理解

SpringBoot可以轻松地实现前后端分离
以前使用SpringMVC的时候,表明该类是一个控制层的类,是使用的@Controller这个注解
然后要使其返回值不刷新页面,采用ajax方法调用执行的话,需要依赖jackson包并且将@ResponseBody这个注解使用在方法头上才行
而现在,使用了SpringBoot之后
只需要使用@RestController这个注解,修饰在类上,即自动把该类标记为一个控制层类、并且全局方法采用ajax调用形式,返回值皆为JSON
爽的飞起来了,就这么一个注解。
当然此时并没有实现前后端分离,前后端分离有一个问题,即跨域请求
而使用@CrossOrigin这个注解就可以无脑实现跨域请求,还能钦定能够访问的地址以及时间等等
简单的实现:

package top.yibobo.demo.springbootdemo1.controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController//全体方法都是使用ajax访问并返回
@CrossOrigin(origins = "http://localhost:8080",maxAge = 3600)//容许跨域请求
public class HelloController{
    @RequestMapping("/hello")
    public String hello(){
        return "Hello SpringBoot!";
    }
}

 
用起来非常舒服,这样后台开发者和前台开发者只需要通过该接口进行数据传输就行了,可以使用纯HTML页面
前台开发这无需知道后台到底干了些啥,他只需要一个接口然后知道这玩意到底返回个装了什么的JSON就可以了。
而且当今的网络应用程序,,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。
前后端分离就可使后端玩后端的、前台玩前台的,互不影响。
 
而他们之间的通信,有一套统一的设计理论,即RESTful
这玩意百度一下一堆东西
主要就是一句话:用URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
并且在设计web接口的时候,接口名一般是用名词写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢——用请求类型来区分。
了解SpringMVC的应该知道请求的路径就是用@RequestMapping的value属性实现的,而下列的这些请求类型呢?

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

他还有一个属性是method,而这个属性就是来确定接收什么请求类型的
method是就是用来搞这个的:指定请求的method类型, GET、POST、PUT、DELETE等。如果不是这个类型的就不会请求到该方法。
 
 
至于前台咋发这些请求类型。。。emmmm我也不是很明白,不过咱是搞后端的,无所谓了
 

           


CAPTCHAis initialing...
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00