springboot接口签名统一效验_SpringBoot+Vue从零开始搭建系统(三)前后端整合一

工具:STS

后端结构:

b32fe05afe32b7777d0f99f2c72ee4af.png

开发步骤:

1.创建一个Springboot项目,不要引入任何东西,具体创建步骤还请去springboot官网,先不要引入其他不需要的东西,我的pom文件如下:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.2.7.RELEASE

kwgc

comming2

0.0.1-SNAPSHOT

comming2

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

2.接着创建如下类,名字随便起哈

e1d14f4ef5865d5cd852b827c62476ee.png

3.具体代码

HttpConfigure 这个暂时不需要,去掉

LoginController

package com.kwgc.comming.controller;

import javax.validation.Valid;

import com.kwgc.comming.pojo.vo.VueLoginInfoVo;

import com.kwgc.comming.result.Result;

import com.kwgc.comming.result.ResultFactory;

import org.springframework.stereotype.Controller;

import org.springframework.validation.BindingResult;

import org.springframework.web.bind.annotation.CrossOrigin;

import org.springframework.web.bind.annotation.RequestBody;

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

import org.springframework.web.bind.annotation.RequestMethod;

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

import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Objects;

@Controller

public class LoginController {

/**

* 登录控制器,前后端分离用的不同协议和端口,所以需要加入@CrossOrigin支持跨域。

* 给VueLoginInfoVo对象加入@Valid注解,并在参数中加入BindingResult来获取错误信息。

* 在逻辑处理中我们判断BindingResult知否含有错误信息,如果有错误信息,则直接返回错误信息。

*/

@CrossOrigin

@RequestMapping(value = "/api/login", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")

@ResponseBody

public Result login(@Valid @RequestBody VueLoginInfoVo loginInfoVo, BindingResult bindingResult) {

if (bindingResult.hasErrors()) {

String message = String.format("登陆失败,详细信息[%s]。", bindingResult.getFieldError().getDefaultMessage());

return ResultFactory.buildFailResult(message);

}

if (!Objects.equals("javalsj", loginInfoVo.getUsername()) || !Objects.equals("123456", loginInfoVo.getPassword())) {

String message = String.format("登陆失败,详细信息[用户名、密码信息不正确]。");

return ResultFactory.buildFailResult(message);

}

return ResultFactory.buildSuccessResult("登陆成功。");

}

}

VueLoginInfoVo

package com.kwgc.comming.pojo.vo;

import javax.validation.constraints.NotNull;

public class VueLoginInfoVo {

@NotNull(message="用户名不允许为空")

private String username;

@NotNull(message="密码不允许为空")

private String password;

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

Result

package com.kwgc.comming.result;

public class Result {

/**

* 响应状态码

*/

private int code;

/**

* 响应提示信息

*/

private String message;

/**

* 响应结果对象

*/

private Object data;

public Result(int code, String message, Object data) {

this.code = code;

this.message = message;

this.data = data;

}

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

public Object getData() {

return data;

}

public void setData(Object data) {

this.data = data;

}

}

ResultCode

package com.kwgc.comming.result;

public enum ResultCode {

/**

* 成功

*/

SUCCESS(200),

/**

* 失败

*/

FAIL(400),

/**

* 未认证(签名错误)

*/

UNAUTHORIZED(401),

/**

* 接口不存在

*/

NOT_FOUND(404),

/**

* 服务器内部错误

*/

INTERNAL_SERVER_ERROR(500);

public int code;

ResultCode(int code) {

this.code = code;

}

}

ResultFactory

package com.kwgc.comming.result;

public class ResultFactory {

public static Result buildSuccessResult(Object data) {

return buidResult(ResultCode.SUCCESS, "成功", data);

}

public static Result buildFailResult(String message) {

return buidResult(ResultCode.FAIL, message, null);

}

public static Result buidResult(ResultCode resultCode, String message, Object data) {

return buidResult(resultCode.code, message, data);

}

public static Result buidResult(int resultCode, String message, Object data) {

return new Result(resultCode, message, data);

}

}

总结

字数限制,还有一部分在下篇文章,如果有任何问题可以在底下留言,如果大家都不能成功需要源码,可以在github上提供,因为暂时不知道反馈情况,所以还是看留言的多少来定吧!

未完待续,你的鼓励是我前进的动力^_^

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值