springboot甘肃特产服务平台50301-计算机课程设计、毕业设计

前言

✨ **博主介绍:**一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮你把毕设做成作品集。👍👍

👇精彩专栏 推荐订阅👇

海量实战库,源码任你选! 坐拥Java项目2000+套

海量实战库,源码任你选! 坐拥Python项目1000+套

海量实战库,源码任你选! 坐拥小程序/app项目500+套

✅获取源码请私信✅

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️

系统实现

普通用户功能实现

用户注册

  注册用户在访问系统首页后,可选择点击"注册"按钮,进入相应的注册页面。在该页面中,用户需完成所有注册信息必填项,点击页面下方的"注册"按钮。系统在接收到表单数据并完成验证后,若信息无误,将提示注册成功,并在自动跳转至系统的登录界面,以便用户立即进行登录操作。注册界面如下图所示。

用户注册界面

用户登录

  用户在登录界面点击"登录"按钮后,需输入用户名、密码以及验证码以完成身份验证操作。系统在前端会自动对所输入信息进行有效性校验,同时检查该用户是否已通过后台审核流程。若审核通过且信息无误,则系统将允许用户成功登录并跳转至相应的功能界面;反之页面会弹出相应的提示信息,提醒用户重新输入或检查相关信息的正确性。登录界面如下图所示。

登录界面

甘肃特产

  甘肃特产主要展示商品信息,提供搜索功能,普通用户可浏览商城中心详情内容,可收藏商品信息,发表评论,支持热门推荐、今日推荐等(优先推荐购买过的商品内容),实现立即购买、加入购物车操作。

甘肃特产界面

我的购物车

  展示用户临时选购的产品列表,用户可以在此确认产品数量、价格,或删除不需要的产品。我的购物车界面如下图所示。

我的购物车界面

我的订单

  提供用户的历史订单和当前订单的详细信息,包括每个订单的状态、预计送达时间、产品明细等。我的订单主界面如下图所示。

我的订单界面

我的地址

  用户可以管理自己的收货地址,确保送达时的准确性。支持新增、修改、删除收货地址。我的地址界面如下图所示。

我的地址界面

管理员功能实现

系统用户

  管理员可管理所有用户信息,包括对普通用户、商家用户和管理员等用户信息增改删查操作,支持审核、封禁、权限设置等功能。界面如下图所示。

系统用户界面

店铺信息管理管理

  管理员审核商家提交的店铺资质(营业执照、食品经营许可证等),管理店铺状态(上架/下架/冻结),查看店铺评分与投诉记录。店铺信息管理界面如下图所示。

店铺信息管理界面

系统管理

  系统管理:可以查看轮播图详情,以及查询、重置、删除、添加等操作。系统管理界面如下图所示:

系统管理界面

平台公告管理

  管理员可以发布平台公告,管理员还可以编辑、删除或修改已发布的公告,确保公告内容的时效性和准确性。平台公告管理界面如下图所示。

平台公告管理界面

资源管理

  管理员在资源管理页面查看所有把资讯文章,支持新增、编辑和删除操作。点击"新增"填写标题、内容并上传图片,选择分类后发布。可批量删除过期文章。界面如下图所示。

资源管理界面

商城管理

  管理员通过商城管理模块对商品进行整体管控,包括商品的信息录入与维护、分类列表的设置与调整,以及订单列表、订单配送和订单售后的全流程管理,实现从用户下单到售后服务的闭环操作。商城管理界面如下图所示。

商城管理界面

商家用户功能实现

商城管理

  商家用户可在商城管理中发布新特产,完善图片、描述、价格及库存信息,并随时编辑商品详情或控制上下架状态。通过自定义分类列表,商家能对店内商品进行二次划分,便于顾客筛选。在订单处理方面,商家可查看所有订单明细,确认收款后打印发货单,填写物流单号以更新发货状态并跟踪轨迹。此外,商家还需负责订单售后工作,与用户沟通协商退款或退货事宜,并及时上传相关凭证完成处理。界面如下图所示。

商城管理界面

数据库参考

sql 复制代码
CREATE TABLE `logistics_delivery` (
  `logistics_delivery_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '物流配送ID',
  `order_number` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '订单号',
  `product_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '商品名称',
  `purchase_quantity` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '购买数量',
  `total_transaction_amount` double(10,2) DEFAULT '0.00' COMMENT '交易总额',
  `the_date_of_issuance` date DEFAULT NULL COMMENT '发货日期',
  `delivery_number` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '配送订单',
  `ordinary_users` int(11) DEFAULT '0' COMMENT '普通用户',
  `shipping_address` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '收货地址',
  `delivery_status` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '配送状态',
  `signing_status` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '签收状态',
  `recommend` int(11) NOT NULL DEFAULT '0' COMMENT '智能推荐',
  `contact_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '联系人名字',
  `merchant_id` int(11) DEFAULT NULL COMMENT '商家id',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `courier_type` int(11) NOT NULL DEFAULT '1' COMMENT '配送方式(1:商家配送,2:其他配送)',
  `courier_id` int(11) DEFAULT NULL COMMENT '配送员ID',
  `courier_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '配送员名字',
  `courier_detail` longtext COLLATE utf8mb4_general_ci COMMENT '配送详情',
  PRIMARY KEY (`logistics_delivery_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='物流配送';
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods` (
  `goods_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品ID',
  `title` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '标题',
  `img` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '封面图:用于显示于产品列表页',
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',
  `price_ago` double(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '原价',
  `price` double(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '卖价',
  `sales` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '销量',
  `inventory` int(11) NOT NULL DEFAULT '0' COMMENT '商品库存',
  `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '商品分类',
  `hits` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点击量',
  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '正文',
  `img_1` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '主图1',
  `img_2` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '主图2',
  `img_3` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '主图3',
  `img_4` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '主图4',
  `img_5` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '主图5',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `customize_field` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '自定义字段',
  `source_table` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源表',
  `source_field` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源字段',
  `source_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '来源ID',
  `user_id` int(11) unsigned DEFAULT '0' COMMENT '添加人',
  `integral` int(11) DEFAULT '0' COMMENT '积分',
  `list_status` smallint(1) DEFAULT '1' COMMENT '上架状态(0:下架;1上架)',
  PRIMARY KEY (`goods_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='商品信息';

代码参考

java 复制代码
package com.project.demo.controller;

import com.project.demo.entity.BusinessUser;
import com.project.demo.service.BusinessUserService;
import com.alibaba.fastjson.JSON;
import com.project.demo.entity.User;
import com.project.demo.controller.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.util.StringUtils;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;


/**
 * 商家用户:(BusinessUser)表控制层
 *
 */
@RestController
@RequestMapping("/business_user")
public class BusinessUserController extends BaseController<BusinessUser, BusinessUserService> {

    /**
     * 商家用户对象
     */
    @Autowired
    public BusinessUserController(BusinessUserService service) {
        setService(service);
    }



    @PostMapping("/add")
    @Transactional
    public Map<String, Object> add(HttpServletRequest request) throws IOException {
        Map<String,Object> paramMap = service.readBody(request.getReader());
        paramMap.entrySet().removeIf(entry -> {
            Object value = entry.getValue();
            return value instanceof String && ((String) value).isEmpty();
        });
        BusinessUser business_user = new BusinessUser();
            business_user.setStore_name(paramMap.get("store_name")==null?null:String.valueOf(paramMap.get("store_name")));
                            business_user.setBusiness_name(paramMap.get("business_name")==null?null:String.valueOf(paramMap.get("business_name")));
                            business_user.setBusiness_phone(paramMap.get("business_phone")==null?null:String.valueOf(paramMap.get("business_phone")));
                            business_user.setQualification_certificate(paramMap.get("qualification_certificate")==null?null:String.valueOf(paramMap.get("qualification_certificate")));
                        business_user.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state")));
        business_user.setUserId(paramMap.get("user_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("user_id"))));
                            business_user.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by"))));
        this.addEntity(business_user);
        System.out.println("商家用户新增成功");
        return success(1);
    }

    @PostMapping("/set")
    @Transactional
    public Map<String, Object> set(HttpServletRequest request) throws IOException {
        Map<String,String> queryMap = service.readQuery(request);
        Map<String,String> configMap = service.readConfig(request);
        Map<String,Object> paramMap = service.readBody(request.getReader());
        paramMap.entrySet().removeIf(entry -> {
            Object value = entry.getValue();
            return value instanceof String && ((String) value).isEmpty();
        });
        BusinessUser business_user = new BusinessUser();
            business_user.setStore_name(paramMap.get("store_name")==null?null:String.valueOf(paramMap.get("store_name")));
                    business_user.setBusiness_name(paramMap.get("business_name")==null?null:String.valueOf(paramMap.get("business_name")));
                    business_user.setBusiness_phone(paramMap.get("business_phone")==null?null:String.valueOf(paramMap.get("business_phone")));
                    business_user.setQualification_certificate(paramMap.get("qualification_certificate")==null?null:String.valueOf(paramMap.get("qualification_certificate")));
                business_user.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state")));
        business_user.setUserId(paramMap.get("user_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("user_id"))));
        this.setEntity(queryMap,configMap,business_user);
        System.out.println("商家用户修改成功");
        return success(1);
    }


    /**
     * 修改审核状态
     *
     * @param id          要修改的记录ID
     * @param newState    新的审核状态
     * @return 提示信息:审核成功/失败
     */
    @Transactional
    @GetMapping("/update_examine_state")
    public String updateExamineState(Long id, String newState) throws IOException {
        // 检查传入的状态是否合法
        if (!newState.equals("未审核") && !newState.equals("已通过") && !newState.equals("未通过")) {
            return "非法的审核状态";
        }

        Map<String,String> queryMap = new HashMap<>();
        queryMap.put("id",String.valueOf(id));
        // 根据ID查找记录
        BusinessUser business_user = service.findOne(queryMap);

        if (business_user!=null) {
            // 更新审核状态
            business_user.setExamine_state(newState);
            this.setEntity(queryMap,new HashMap<>(),business_user);

            return "审核成功";
        } else {
            return "审核失败:记录不存在";
        }
    }
    /**
     * 根据 user_id 查询用户及其附加表信息
     *
     * @param userId 用户ID
     * @return 包含用户信息和附加信息的对象
     */
    @GetMapping("/get_user_by_id")
    public Map<String,Object> getUserById(Long userId) {
        Map<String,String> queryMap = new HashMap<>();
        queryMap.put("user_id",String.valueOf(userId));
        // 查询用户基本信息
        Map<String,Object> registeredMap = this.getObjByMap(queryMap);
        BusinessUser business_user = JSON.parseObject(JSON.toJSONString(registeredMap),BusinessUser.class);

        if (business_user != null) {
            // 查询用户附加信息
            Map<String,Object> userMap = this.getObjByMap(queryMap);
            User user = JSON.parseObject(JSON.toJSONString(userMap),User.class);

            Map<String,Object> result = new HashMap<>();
            result.put("user",user);
            result.put("business_user",business_user);
            return result;
        } else {
            throw new RuntimeException("商家用户不存在}");
        }
    }
}
package com.project.demo.controller;

import com.project.demo.controller.base.BaseController;
import com.project.demo.entity.LogisticsDelivery;
import com.project.demo.service.LogisticsDeliveryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 物流
 *
 */
@RestController
@RequestMapping("logistics_delivery")
public class LogisticsDeliveryController extends BaseController<LogisticsDelivery, LogisticsDeliveryService> {
    /**
     * 服务对象
     */
    @Autowired
    public LogisticsDeliveryController(LogisticsDeliveryService service) {
        setService(service);
    }

}
package com.project.demo.controller;

import com.project.demo.entity.StoreInformation;
import com.project.demo.service.StoreInformationService;
import com.alibaba.fastjson.JSON;
import com.project.demo.controller.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.util.StringUtils;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;


/**
 * 店铺信息:(StoreInformation)表控制层
 *
 */
@RestController
@RequestMapping("/store_information")
public class StoreInformationController extends BaseController<StoreInformation, StoreInformationService> {

    /**
     * 店铺信息对象
     */
    @Autowired
    public StoreInformationController(StoreInformationService service) {
        setService(service);
    }



    @PostMapping("/add")
    @Transactional
    public Map<String, Object> add(HttpServletRequest request) throws IOException {
        Map<String,Object> paramMap = service.readBody(request.getReader());
        paramMap.entrySet().removeIf(entry -> {
            Object value = entry.getValue();
            return value instanceof String && ((String) value).isEmpty();
        });
        StoreInformation store_information = new StoreInformation();
            store_information.setMerchant_number(paramMap.get("merchant_number")==null?null:String.valueOf(paramMap.get("merchant_number")));
                            store_information.setBusiness_user(paramMap.get("business_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("business_user"))));
                            store_information.setStore_name(paramMap.get("store_name")==null?null:String.valueOf(paramMap.get("store_name")));
                            store_information.setBusiness_name(paramMap.get("business_name")==null?null:String.valueOf(paramMap.get("business_name")));
                            store_information.setBusiness_phone(paramMap.get("business_phone")==null?null:String.valueOf(paramMap.get("business_phone")));
                            store_information.setBusiness_hours(paramMap.get("business_hours")==null?null:String.valueOf(paramMap.get("business_hours")));
                            store_information.setShop_signboard(paramMap.get("shop_signboard")==null?null:String.valueOf(paramMap.get("shop_signboard")));
                            store_information.setStore_address(paramMap.get("store_address")==null?null:String.valueOf(paramMap.get("store_address")));
                            store_information.setBrand_story(paramMap.get("brand_story")==null?null:String.valueOf(paramMap.get("brand_story")));
                            store_information.setStore_announcement(paramMap.get("store_announcement")==null?null:String.valueOf(paramMap.get("store_announcement")));
                        store_information.setHits(paramMap.get("hits")==null?null:Integer.valueOf(String.valueOf(paramMap.get("hits"))));
        store_information.setPraise_len(paramMap.get("praise_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("praise_len"))));
        store_information.setCollect_len(paramMap.get("collect_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("collect_len"))));
        store_information.setComment_len(paramMap.get("comment_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("comment_len"))));
                            store_information.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by"))));
        this.addEntity(store_information);
        System.out.println("店铺信息新增成功");
        return success(1);
    }

    @PostMapping("/set")
    @Transactional
    public Map<String, Object> set(HttpServletRequest request) throws IOException {
        Map<String,String> queryMap = service.readQuery(request);
        Map<String,String> configMap = service.readConfig(request);
        Map<String,Object> paramMap = service.readBody(request.getReader());
        paramMap.entrySet().removeIf(entry -> {
            Object value = entry.getValue();
            return value instanceof String && ((String) value).isEmpty();
        });
        StoreInformation store_information = new StoreInformation();
            store_information.setMerchant_number(paramMap.get("merchant_number")==null?null:String.valueOf(paramMap.get("merchant_number")));
                    store_information.setBusiness_user(paramMap.get("business_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("business_user"))));
                    store_information.setStore_name(paramMap.get("store_name")==null?null:String.valueOf(paramMap.get("store_name")));
                    store_information.setBusiness_name(paramMap.get("business_name")==null?null:String.valueOf(paramMap.get("business_name")));
                    store_information.setBusiness_phone(paramMap.get("business_phone")==null?null:String.valueOf(paramMap.get("business_phone")));
                    store_information.setBusiness_hours(paramMap.get("business_hours")==null?null:String.valueOf(paramMap.get("business_hours")));
                    store_information.setShop_signboard(paramMap.get("shop_signboard")==null?null:String.valueOf(paramMap.get("shop_signboard")));
                    store_information.setStore_address(paramMap.get("store_address")==null?null:String.valueOf(paramMap.get("store_address")));
                    store_information.setBrand_story(paramMap.get("brand_story")==null?null:String.valueOf(paramMap.get("brand_story")));
                    store_information.setStore_announcement(paramMap.get("store_announcement")==null?null:String.valueOf(paramMap.get("store_announcement")));
                store_information.setHits(paramMap.get("hits")==null?null:Integer.valueOf(String.valueOf(paramMap.get("hits"))));
        store_information.setPraise_len(paramMap.get("praise_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("praise_len"))));
        store_information.setCollect_len(paramMap.get("collect_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("collect_len"))));
        store_information.setComment_len(paramMap.get("comment_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("comment_len"))));
        this.setEntity(queryMap,configMap,store_information);
        System.out.println("店铺信息修改成功");
        return success(1);
    }


}

前端: 基于Vue.js框架构建用户界面,使用HTML5、CSS3和JavaScript实现页面结构与交互逻辑,通过Vue Router管理路由,Vuex或Pinia维护全局状态。采用Element UI或Vant组件库快速搭建界面,Axios封装HTTP请求实现与后端的数据通信。

后端: 基于springboot框架搭建,遵循Controller-Service-Mapper三层架构。Controller层接收前端请求并校验参数,Service层处理核心业务逻辑,Mapper层通过MyBatis或MyBatis-Plus完成数据库操作。使用Spring Security或Shiro结合JWT实现用户认证与权限控制。

数据库: 采用MySQL存储持久化数据,Redis缓存热点信息以提升系统性能。

开发工具: 使用IDEA开发后端,VSCode或HBuilderX开发前端,Git进行版本管理,Maven和npm分别管理前后端依赖。

源码获取

私信联系我即可~

大家点赞、收藏、关注、评论啦

👇精彩专栏 推荐订阅👇

海量实战库,源码任你选! 坐拥Java项目2000+套

海量实战库,源码任你选! 坐拥Python项目1000+套

海量实战库,源码任你选! 坐拥小程序/app项目500+套

✅获取源码请私信✅

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️

相关推荐
Thneonl1 小时前
服务不通先别抓包:DNS 解析器的坑比内核网络栈多
后端·程序员
Thneonl1 小时前
一启动就 Exited(137):内存限制背后藏了四个参数
后端·架构
midelshuang1 小时前
RAG 文档解析(三):bbox 实战——多栏排版与水印 PDF
python
斯维赤1 小时前
从 @Tool 到 Agent 流水线:LangChain4j 进阶教学,一个库打全套
java·后端
对象存储与RustFS1 小时前
RustFS 生产部署实战:Docker / 二进制 / K8s Operator 三条路径怎么选
后端
FYKJ_20101 小时前
springboot雅集社区养老管理系统04456-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
MZ_ZXD0011 小时前
【关注可白嫖源码】--课程设计--毕业设计-- 82714基于Python的足球俱乐部管理系统的设计与实现(案件分析)
源码·课程设计·毕设·大作业·程序开发·程序定制·毕设代做
知守观1 小时前
Spring Boot 2.1.0 停维护5年,10个依赖4个有CVE——2022年老项目的安全体检报告
spring boot·后端
FYKJ_20101 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
javascript·vue.js·spring boot·mysql·typescript·spark·express