首页 > 其他分享 >基于springboot+vue的商城系统(电商平台)(前后端分离)

基于springboot+vue的商城系统(电商平台)(前后端分离)

时间:2023-09-04 17:36:09浏览次数:46  
标签:vue return springboot corsConfiguration token Result new 电商 public


博主主页猫头鹰源码

博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

项目介绍: 

本系统以商城为主题,采用前后端分离,项目代码工整,结构清晰,适合选题:各类商城系统、前后端分离类其他商城系统等。系统采用springboot+vue整合开发,前端主要使用了element-ui框架、项目后端主要使用了springboot,数据层采用mybatis。

项目功能:

基于springboot+vue的商城系统(电商平台)(前后端分离)_javaweb

基于springboot+vue的商城系统(电商平台)(前后端分离)_java_02

系统包含技术:

后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是首页

基于springboot+vue的商城系统(电商平台)(前后端分离)_vue.js_03

登录页面

基于springboot+vue的商城系统(电商平台)(前后端分离)_vue.js_04

搜索商品

基于springboot+vue的商城系统(电商平台)(前后端分离)_springboot_05

 商品详情,可以查看介绍,评论

基于springboot+vue的商城系统(电商平台)(前后端分离)_vue.js_06

 购物车

基于springboot+vue的商城系统(电商平台)(前后端分离)_后端_07

付款成功后进入我的订单

基于springboot+vue的商城系统(电商平台)(前后端分离)_springboot_08

收藏夹展示我的收藏内容

基于springboot+vue的商城系统(电商平台)(前后端分离)_springboot_09

个人中心

基于springboot+vue的商城系统(电商平台)(前后端分离)_java_10

 后台首页

基于springboot+vue的商城系统(电商平台)(前后端分离)_vue.js_11

 后台管理员对用户管理

基于springboot+vue的商城系统(电商平台)(前后端分离)_vue.js_12

管理员对商品管理

基于springboot+vue的商城系统(电商平台)(前后端分离)_javaweb_13

管理员对轮播图管理

基于springboot+vue的商城系统(电商平台)(前后端分离)_java_14

管理员对角色管理

基于springboot+vue的商城系统(电商平台)(前后端分离)_java_15

部分代码截图:

拦截器

@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        String token = request.getHeader("token");
        if (StrUtil.isBlank(token)) {
            throw new CustomException("401", "未获取到token, 请重新登录");
        }
        String username;
        try {
            username = JWT.decode(token).getAudience().get(0);
        } catch (JWTDecodeException j) {
            throw new CustomException("401", "权限验证失败, 请重新登录");
        }
        User user = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
        if (user == null) {
            throw new CustomException("401", "用户不存在, 请重新登录");
        }
        // 验证 token
        JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(user.getPassword())).build();
        try {
            jwtVerifier.verify(token);
        } catch (JWTVerificationException e) {
            throw new CustomException("401", "token不合法, 请重新登录");
        }

        return true;
    }

 跨域

// 当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;

    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }

商品操作

/**
     * 推荐商品
     * @return
     */
    @GetMapping("/recommend")
    public Result<?> recommend() {
        List<Goods> list = goodsService.recommend();
        return Result.success(list);
    }

    /**
     * 推热销商品
     * @return
     */
    @GetMapping("/sales")
    public Result<?> sales() {
        List<Goods> list = goodsService.sales();
        return Result.success(list);
    }

    /**
     * 根据分类id查询商品
     * @param id
     * @param pageNum
     * @param pageSize
     * @return
     */
    @GetMapping("/byCategory/{id}")
    public Result<?> findByCategory(@PathVariable Long id,
                                    @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                    @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        IPage<Goods> page = goodsService.pageByCategory(new Page<>(pageNum, pageSize), id);
        return Result.success(page);
    }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

标签:vue,return,springboot,corsConfiguration,token,Result,new,电商,public
From: https://blog.51cto.com/u_14544277/7353259

相关文章

  • 基于springboot的自助旅游服务平台
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询项目介绍: 该系统创作于2022年4月,包含详细数据库设计。基于springboot......
  • 基于springboot+vue的江西旅游网(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 本系统为原创项目,以江西旅游为主题,采用前后端分......
  • 基于springboot+vue的商城/体育用品商城/衣服商城系统(前后端分离)
    项目技术:系统使用技术:SpringBoot+SpringDataJpa前端技术:AntDesign、js、css开发工具:idea/vscode数据库:mysql5.7项目介绍:本系统是一个前后端分离的商城系统,适用于课题:前后端分离、商城、体育用品商城、手机商城、服饰商城等各类商城系统,含有详细的数据库设计文档,以及系统介绍,只需......
  • 基于springboot+vue的医院预约系统(前后端分离)
    技术详情: 系统使用技术:springboot+mybatis前端技术:ElementUI、ajax、node.js、js、css开发工具:idea数据库:mysql5.7项目介绍:本系统采用springboot+vue整合开发,前端主要使用了Vue框架、ElementUI和AJAX技术。项目后端主要使用了springboot等一系列框架和MyBatis以及Maven。这一套技......
  • 基于springboot+vue的高校迎新系统(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询项目介绍: 本系统为2022年11月开发完成,最新原创项目,采用前后端分离,项目......
  • 基于springboot+vue的社区健康码管理系统(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 本系统为2022年11月开发完成,采用前后端分离,项目......
  • 基于springboot+vue的电子村务系统(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 本系统为原创项目,以电子村务为主题,采用前后端分......
  • 基于springboot的校园跑腿系统
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询项目介绍: 该系统创作于2022年5月,包含详细数据库设计。基于springboot......
  • 基于springboot自习室预约管理
    博主主页:猫头鹰源码博主简介:Java领域优质创作者博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 该系统创作于2023年3月,基于springboot技术,数据层......
  • 直播助手无人电商直播推流工具
      无人直播目的是实现商家不露面,不请主播,多台手机直播的效果。无人电商直播软件是将app直播效果发挥到了最大化,实现开播就有人介绍产品,实时的与用户互动,弹幕文字内容识别,自动回复相关的问题,提高用户的下单率。  而要实现无人电商直播,推流工具是必不可少的,直播助手无人电商......