使用vue-admin-template+SpringBoot快速搭建前后端分离项目

使用vue-admin-template+SpringBoot快速搭建前后端分离项目

1.前端准备
  1. 准备环境:安装好nodejs & npm(略)
    在这里插入图片描述

  2. 获取vue-admin-template
    可以使用如下Git命令直接获取

git clone https://gitee.com/panjiachen/vue-admin-template.git

在这里插入图片描述

下载成功后可以给文件改名,这里我将文件名改为front
在这里插入图片描述
2. 使用idea将文件front打开

在这里插入图片描述
3. 安装框架所需包

npm install

在这里插入图片描述
在这里插入图片描述
4. 运行

  • nodejs版本小于等于17的直接使用npm run dev运行
    在这里插入图片描述

  • nodejs版本大于17的在执行前加上一个参数
    在这里插入图片描述

 $env:NODE_OPTIONS="--openssl-legacy-provider"
 npm run dev  

看到这里说明前端部署成功!!!
在这里插入图片描述
在这里插入图片描述

2.后端准备
  1. 快速创建一个SpingBoot项目
    在这里插入图片描述在这里插入图片描述
    添加一个controller和User以及统一返回结果类Result
    在这里插入图片描述
    在pom.xml中添加一个lombok插件,开发快一点
    在这里插入图片描述
User.java
package com.example.back.entity;

import lombok.Data;

@Data
public class User {

    private String username;

    private String password;

}

Result.java
package com.example.back.utils;
import lombok.Data;

@Data
public class Result<T> {

    //返回码
    private Integer code;

    //返回消息
    private String message;

    //返回数据
    private T data;

    public Result(){}

    // 返回数据
    protected static <T> Result<T> build(T data) {
        Result<T> result = new Result<T>();
        if (data != null)
            result.setData(data);
        return result;
    }

    public static <T> Result<T> build(T body, Integer code, String message) {
        Result<T> result = build(body);
        result.setCode(code);
        result.setMessage(message);
        return result;
    }

    public static <T> Result<T> build(T body, ResultCodeEnum resultCodeEnum) {
        Result<T> result = build(body);
        result.setCode(resultCodeEnum.getCode());
        result.setMessage(resultCodeEnum.getMessage());
        return result;
    }

    public static<T> Result<T> ok(){
        return Result.ok(null);
    }

    /**
     * 操作成功
     * @param data  baseCategory1List
     * @param <T>
     * @return
     */
    public static<T> Result<T> ok(T data){
        Result<T> result = build(data);
        return build(data, ResultCodeEnum.SUCCESS);
    }

    public static<T> Result<T> fail(){
        return Result.fail(null);
    }

    /**
     * 操作失败
     * @param data
     * @param <T>
     * @return
     */
    public static<T> Result<T> fail(T data){
        Result<T> result = build(data);
        return build(data, ResultCodeEnum.FAIL);
    }

    public Result<T> message(String msg){
        this.setMessage(msg);
        return this;
    }

    public Result<T> code(Integer code){
        this.setCode(code);
        return this;
    }
}

ResultCodeEnum.java
package com.example.back.utils;

import lombok.Getter;

/**
 * 统一返回结果状态信息类
 *
 */
@Getter
public enum ResultCodeEnum {

    SUCCESS(200,"成功"),
    FAIL(201, "失败"),
    SERVICE_ERROR(2012, "服务异常"),
    DATA_ERROR(204, "数据异常"),
    ILLEGAL_REQUEST(205, "非法请求"),
    REPEAT_SUBMIT(206, "重复提交"),
    ARGUMENT_VALID_ERROR(210, "参数校验异常"),

    LOGIN_AUTH(208, "未登陆"),
    PERMISSION(209, "没有权限"),
    ACCOUNT_ERROR(214, "账号不正确"),
    PASSWORD_ERROR(215, "密码不正确"),
    LOGIN_MOBLE_ERROR( 216, "账号不正确"),
    ACCOUNT_STOP( 217, "账号已停用"),
    NODE_ERROR( 218, "该节点下有子节点,不可以删除")
    ;

    private Integer code;

    private String message;

    private ResultCodeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

LoginController.java
package com.example.back.controller;


import com.example.back.entity.User;
import com.example.back.utils.Result;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.HashMap;
import java.util.Map;

@RestController
public class LoginController {

    /**
     * 登录
     * @return
     */
    @PostMapping("/login")
    public Result login(@RequestBody User user) {

        System.out.println("=============="+user);
        
        Map<String, Object> map = new HashMap<>();
        map.put("token","admin");
        return Result.ok(map);
    }
    /**
     * 获取用户信息
     * @return
     */
    @GetMapping("/info")
    public Result info() {
        Map<String, Object> map = new HashMap<>();
        map.put("roles","[admin]");
        map.put("name","admin");
        map.put("avatar","https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
        return Result.ok(map);
    }
    /**
     * 退出
     * @return
     */
    @PostMapping("/logout")
    public Result logout(){
        return Result.ok();
    }
}

3.连接前后端
  1. 修改响应状态码
    在这里插入图片描述
  2. 使用代理

在这里插入图片描述

// before: require('./mock/mock-server.js')
    proxy: {
      '/dev-api': { // 匹配所有以 '/dev-api'开头的请求路径
        target: 'http://localhost:8080',
        changeOrigin: true, // 支持跨域
        pathRewrite: { // 重写路径: 去掉路径中开头的'/dev-api'
          '^/dev-api': ''
        }
      }
    }
  1. api中axios的地址改为后端对应地址
    在这里插入图片描述
4.测试
  1. 运行后端
  2. 运行前端
  3. 点击登录 在这里插入图片描述
    在这里插入图片描述
5.后续前端开发基本步骤
  1. 在api中定义各种请求

  2. 在views中定义前端页面

  3. 在router中添加路由
    在这里插入图片描述

  4. 前端页面调用api中的方法发送axios请求,并使用vue框架展示后端返回数据
    在这里插入图片描述

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: FISCO BCOS是一款区块链开发平台,通过使用该平台可以快速构建出区块链应用。在FISCO BCOS平台上,基于SpringBootVue框架实现电商项目前后端分离开发,具有以下特点。 首先,前后端分离可以将系统的业务逻辑和展示效果分别进行开发,使得开发工作更加高效。前端使用Vue框架实现页面效果,后端使用SpringBoot实现业务逻辑,两端通过API接口来进行数据交互。 其次,采用区块链技术来实现电商项目的数据存储和交易,可以避免信息篡改和数据伪造等安全问题,提高了交易的安全性和可信度。 在FISCO BCOS平台上,开发者可以借助已有的API接口和模板文件来快速搭建出一个区块链电商平台。同时,平台还提供了监控、调试等功能,可以在运行过程中实时监控系统的运行情况,发现问题及时进行修复。 总之,FISCO BCOS平台结合SpringBootVue框架,实现了电商项目前后端分离开发,基于区块链技术实现了数据安全和交易可信,同时提供了丰富的监控、调试等功能,具有较高的开发效率和系统安全性。 ### 回答2: FISCO BCOS SpringBoot Vue前端分离电商项目是一款基于区块链技术的电商平台。该项目利用FISCO BCOS区块链平台构建,采用SpringBoot作为后端框架Vue作为前端框架进行开发。 该项目的主要特点是前后端分离,有利于代码的模块化和协同开发,并且基于区块链技术,实现了电商交易的可追溯、不可篡改等优点。在前端方面,通过Vue框架实现了页面的动态渲染、组件化设计和可重用性。在后端方面,SpringBoot框架实现了RESTful API接口的设计和实现,实现了用户管理、商品管理、订单管理等功能。 该项目由于采用了区块链技术,可以实现交易的安全性和可信度,保障了消费者的利益。在商户方面,通过搭建自己的店铺,在平台上销售自己的产品,增强了商家的宣传和销售能力。同时,平台提供了丰富的数据分析以及销售分析工具,帮助商家分析销售情况和流量,促进商家的发展和壮大。 总体来说,该项目在电商市场上具有重要的意义,可以帮助消费者和商家建立更加安全、可信、高效的交易环境。同时,借助区块链技术的不可篡改性和数据追溯性,也提升了电商平台在市场上的竞争力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值