基于移动品台的产品追溯系统设计与实现

2023-05-16

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给在家介绍一篇基于移动品台的产品追溯系统设计与实现。

功能需求

基于移动平台的产品追溯系统是一个基于Springboot的轻量级Web框架的系统。首先根据目前开发行内成熟、热门的技术分析确定开发需要使用的技术点;根据业务分析功能性和非功能点;根据系统设计对系统总体功能设计,包括模块划分,数据库设计原则以及表结构的建立分析;在技术实现上说明了功能详细设计与实现。
首先要对移动平台的产品追溯系统的用户和管理员的相关功能有可了解和分析,明白用户通过互联网查看产品信息的流程以及系统后台对网站信息的基本管理流程;然后要充分调查并了解网上管理的流程,管理员对商品以及用户等信息的管理方式,记录、处理相关的数据。其次对开发移动平台系统所需掌握的开发工具进行分析和学习,并由一定程度的使用经验,以及全系统各个功能模块的详细设计。通过确定数据库的选择以及数据设计需要注意点和设计原则,选择MySQL数据库并设计好所使用的数据库表,完成本系统的设计;最后要进行系统的测试和维护,保证网红书屋能够正常运行。

具备以下功能:

基于移动平台的产品追溯系统开发分为用户、管理员两个个用户角色,移动端具体功能需求如下:
1 用户登录注册
用户在浏览器地址栏输入登录网站,进入登录页面,首页支持游客模式浏览,点击任意按钮是验证是否登录,用户必须先进行账号密码验证登录,输入账号密码点击登录请求后台,经过后端服务进行校验数据账号密码正确方可进行以下操作。

2 产品追溯查询
产品追溯查询功能就现在而言,对于很多信息系统都是一个非常火热的话题,根据产品名称查询产品列表,点击产品名称进入产品详情页返回展示给用户,根据该产品质量投诉规则展示产品质量预警提示。

3 公众查询
用户从菜单界面进入公众查询界面,因为涉及到根据产品唯一码或者扫码进行查询,本系统该模块主要通过实现,根据用户输入的商品条码,在产品中匹配相关的产品信息并返回展示给用户。

4 用户反馈
前端直接发请求,分页展示,必然有当前页数pageNumber参数.后端检测是否有人登录,根据当前登录人信息查询该用户的所有留言反馈信息。在历史反馈列表中倒叙展示,可以根据自己想法反馈信息。

5 产品质量投诉
用户在进入产品详情页,查看产品名称、类别、价格、详细介绍等。根据介绍信息对比自己购买产品情况,如果对质量有疑问可以通过质量投诉界面输入投诉原因,提交到后台管理员审核处理。

6 用户管理
用户所有登录的账号都必须是在管理员的管理下,不能随意登录系统,管理员设置用户账号以及权限等信息。管理员可以筛选查看并有删除、编辑修改信息以及重置密码操作。

7产品信息管理
管理员在产品信息管理界面输入产品信息进行模糊查询,展示在书库搜索页面,管理员可以点击操作按钮,可以选择删除、修改、发布,系统根据用户的投诉进行处理产品信息。

8用户反馈管理
用户在移动端对系统、产品的疑问或者体验进行留言反馈,系统管理员在用户反馈管理界面查询用户反馈信息,根据反馈情况进行有针对性的回复。

系统设计

在这里插入图片描述

在这里插入图片描述

部分效果图

前端界面:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后端功能截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

系统业务概述

通过我们在学校的学习中,软件开发所选择的技术都是在学校所学过的。在本产品追溯自助服务平台系统中前端使用到了JQuery+CSS样式和基本框架技术,Jquery是对JavaScript分装的一种事件动态脚本,也就是给前端页面添加动作效果,响应请求后台的操作。同时也是一种广泛用于移动端开发的脚本语言,项目的后台采用行业内常用Springboot框架,利用java的面向对象思想和跨平台特性开发,处理网购业务数据。MySQL 具有关系型的数据库,学生开发基本都采用MySQL数据库,因为他是开源免费的,网站的部分数据需要持久化,项目连接数据库通过配置文件配置数据源信息,实现数据库连接池进行操作数据库,利用数据库的特性对用户信息以及其他业务数据保存。

部分代码

    /**
     * 跳转到产品列表
     * @return
     */
    @RequestMapping(value = "/ProductPage")
    public String toplpPage() {
        return "demo/system/productList";
    }

    /**
     * 跳转到产品详情页
     * @return
     */
    @RequestMapping(value = "/productInfo")
    public String productInfo(@RequestParam(value = "id", required = false)Integer id,
                           Model model) {
        if (!IsObjectNullUtils.is(id)){
            XydJProduct xydJProduct = productService.selectByKeyJiGou(id);
            model.addAttribute("xydpd", xydJProduct);
        }
        return "demo/system/productAdd";
    }

    //添加或者修改产品信息
    @RequestMapping(value = "/addproduct")
    @ResponseBody
    public Map addContact(@RequestParam(required = false,value = "name" )String name,
                          @RequestParam(required = false,value = "id" )Integer id,
                          @RequestParam(required = false,value = "manufacturers" )String manufacturers,
                          @RequestParam(required = false,value = "type" )String type,
                          @RequestParam(required = false,value = "kcun" )Integer kcun,
                          @RequestParam(required = false,value = "createTime" )String createTime,
                          @RequestParam(required = false,value = "sales" )Integer sales,
                          @RequestParam(required = false,value = "sfsect" )String sfsect,
                          @RequestParam(required = false,value = "addr" )String addr,
                          @RequestParam(required = false,value = "bracode" )String bracode,
                          @RequestParam(required = false,value = "context" )String context,
                          HttpServletRequest request){
        Map<String, Object> result = new HashMap<>();
        XydJProduct xydJigou = new XydJProduct();
        xydJigou.setName(name);
        xydJigou.setManufacturers(manufacturers);
        xydJigou.setType(type);
        xydJigou.setKcun(kcun);
        xydJigou.setCreateTime(createTime);
        xydJigou.setSales(sales);
        xydJigou.setContext(sfsect);
        xydJigou.setAddr(addr);
        xydJigou.setBracode(bracode);
        xydJigou.setStates("0");
        int a = 0;
        if (!IsObjectNullUtils.is(id)){  //如果id不为空则为更新操作
            xydJigou.setId(id);
            a = productService.updateJiGouByKey(xydJigou);
        }else {
            a = productService.insetJiGou(xydJigou);
        }
        if (a > 0){
            result.put("code", 200);
            result.put("msg","操作成功");
        }else {
            result.put("code", 202);
            result.put("msg","操作失败,请检验产品信息是否正确!");
        }
        return result;
    }

    /**
     * 获取产品列表
     * @return
     */
    @RequestMapping(value = "/getproductList.ajax")
    @ResponseBody
    public DataTableReturnData getplpList(@RequestParam Map<String, String> params) {

        DataTableReturnData<XydJProduct> dataTableReturnData = new DataTableReturnData();
        int pageNum = getPageNum(params.get("start"), params.get("length"));
        int pageSize=getPageSize(params.get("length"));
        GenericQueryParam queryParam = new GenericQueryParam(pageNum, pageSize);
        if (!IsObjectNullUtils.is(params.get("name"))) {
            queryParam.fill("name", params.get("name"));
        }
        queryParam.fill("states",  "1");
        int count = productService.selectjiGouCount(queryParam);
        List<XydJProduct> xydJigouList = productService.selectByParamjiGouList(queryParam);
        dataTableReturnData.setData(xydJigouList);
        dataTableReturnData.setDraw(getDraw(params.get("draw")));
        dataTableReturnData.setMsg("查询成功");
        dataTableReturnData.setStatus(ResultStant.RESULT_CODE_SUCCESS);
        dataTableReturnData.setRecordsFiltered(count);
        dataTableReturnData.setRecordsTotal(count);
        return dataTableReturnData;
    }

    /**
     * 删除产品
     * @return
     */
    @RequestMapping(value = "/updateProduct")
    @ResponseBody
    public Map updateXX(@RequestParam(value = "id")Integer id) {
        Map<String, Object> map = new HashMap<>();
        if (productService.deleteJgByKey(id) > 0){
            map.put("code", 200);
            map.put("msg", "操作成功!");
        }else {
            map.put("code", 202);
            map.put("msg", "操作失败,请刷新重试!");
        }
        return map;
    }


    /**
     * 跳转到产品发布列表
     * @return
     */
    @RequestMapping(value = "/produRelPage")
    public String jguserPage() {
        return "demo/system/productReleaseList";
    }



    /**
     * 获取产品发布
     * @return
     */
    @RequestMapping(value = "/getProductReleaseList.ajax")
    @ResponseBody
    public DataTableReturnData getProductReleaseList(@RequestParam Map<String, String> params) {

        DataTableReturnData<Map<String, Object>> dataTableReturnData = new DataTableReturnData();
        int pageNum = getPageNum(params.get("start"), params.get("length"));
        int pageSize=getPageSize(params.get("length"));
        GenericQueryParam queryParam = new GenericQueryParam(pageNum, pageSize);
        if (!IsObjectNullUtils.is(params.get("name"))) {
            queryParam.fill("name", params.get("name"));
        }
        queryParam.fill("states",  "1");
        int count = productService.selectjReleaseCount(queryParam);
        List<Map<String, Object>> xydJigouList = productService.selectByParamjReleaseList(queryParam);
        dataTableReturnData.setData(xydJigouList);
        dataTableReturnData.setDraw(getDraw(params.get("draw")));
        dataTableReturnData.setMsg("查询成功");
        dataTableReturnData.setStatus(ResultStant.RESULT_CODE_SUCCESS);
        dataTableReturnData.setRecordsFiltered(count);
        dataTableReturnData.setRecordsTotal(count);
        return dataTableReturnData;
    }


    /**
     * 跳转到发布页
     * @return
     */
    @RequestMapping(value = "/toReleaseInfo")
    public String toReleaseInfo(@RequestParam(value = "id", required = false)Integer id,
                              Model model) {
        if (!IsObjectNullUtils.is(id)){

            model.addAttribute("prodid", id);
        }
        return "demo/system/releaseAdd";
    }

    //添加产品发布信息
    @RequestMapping(value = "/addRelease")
    @ResponseBody
    public Map addRelease(@RequestParam(required = false,value = "prodid" )Integer prodid,
                          @RequestParam(required = false,value = "id" )Integer id,
                          @RequestParam(required = false,value = "title" )String title,
                          @RequestParam(required = false,value = "type" )String type,
                          @RequestParam(required = false,value = "context" )String context,
                          HttpServletRequest request){
        Map<String, Object> result = new HashMap<>();
        XydRelease xydRelease = new XydRelease();
        xydRelease.setProductid(prodid);
        xydRelease.setId(id);
        xydRelease.setTitle(title);
        xydRelease.setType(type);
        xydRelease.setContext(context);
        xydRelease.setCreate_time(new Date());
        xydRelease.setStates("1");
        int a = 0;
        if (!IsObjectNullUtils.is(id)){  //如果id不为空则为更新操作
            xydRelease.setId(id);
            a = productService.updateReleaseByKey(xydRelease);
        }else {
            a = productService.insetRelease(xydRelease);
        }
        if (a > 0){
            result.put("code", 200);
            result.put("msg","操作成功");
        }else {
            result.put("code", 202);
            result.put("msg","操作失败,请检验发布信息是否正确!");
        }
        return result;
    }


    //暂停发布操作
    @RequestMapping(value = "/zantRelease")
    @ResponseBody
    public Map zantRelease(
                          @RequestParam(required = false,value = "id" )Integer id
                          ){
        Map<String, Object> result = new HashMap<>();
        XydRelease xydRelease = new XydRelease();
        xydRelease.setId(id);
        xydRelease.setCreate_time(new Date());
        xydRelease.setStates("2");
        int a = productService.updateReleaseByKey(xydRelease);
        if (a > 0){
            result.put("code", 200);
            result.put("msg","操作成功");
        }else {
            result.put("code", 202);
            result.put("msg","操作失败,请刷新重试!");
        }
        return result;
    }

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在IDEA中编辑进行打包;
下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

本项目用到的技术和框架

(1)开发工具:ideal、tomcat
(2)使用的语言:Java、JSP、Javascript、html、CSS
(3)操作系统:windows操作系统
(4)数据库:Mysql

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse/IDEA
语言 JDK1.8 、jsp、Springboot 、mybatis
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
源码获取点这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于移动品台的产品追溯系统设计与实现 的相关文章

  • 程序员面试必备的Java八股文,适合所有的Java求职者!

    说明 本文分享Java后端真实高频面试题 xff0c 有详细答案 xff0c 保你稳过面试 题目包括 xff1a Java基础 多线程 JVM 数据库 Redis Shiro Spring SpringBoot MyBatis MQ ELK
  • 不愧是阿里顶配版Spring Security笔记,面面俱到太全了!

    对于开发人员而言 xff0c 如何使用各种技术体系解决安全性问题是一大困惑 经验丰富的开发人员需要熟练使用 Spring Security 框架来应对业务发展的需求 例如 xff0c 全面掌握 Spring Security 框架提供的认证
  • Android Studio常用快捷键、Android Studio快捷键大全

    AndroidStudio 更改变量名 按shift 43 F6 Ctrl 43 D xff1a 集合了复制和粘贴两个操作 xff0c 如果有选中的部分就复制选中的部分 xff0c 并在选中部分的后面 粘贴出来 xff0c 如果没有选中的部
  • Linux中安装SVN并使用

    系统环境 xff1a centOS7 0 一 xff1a 卸载SVN xff08 如果你是一台新的系统机可以忽略这一步 xff09 1 xff1a rpm qa subversion 查询SVN是否有过低版本SVN xff08 没有安装过则
  • AdminLTE框架的基本使用

    原文链接 xff1a http www maixiaogang com
  • IntelliJ IDEA常用快捷键总结

    之前开发项目一直用的是eclipse进行开发 xff0c 近期在使用IDEA这个工具进行项目开发 xff0c 之前在eclipse上能使用的快捷键方法放在IDEA上很多都不适用了 xff0c 因此在此总结一下关于IDEA快捷键的使用方法 x
  • 国内外手机号码正则表达式(收藏)

    附上语言 xff08 文化 xff09 代码与国家地区对照表 xff1a 简体中文 中国 zh cn 繁体中文 台湾地区 zh tw 繁体中文 香港 zh hk 英语 香港 en hk 英语 美国 en us 英语 英国 en gb 英语
  • Java服务,CPU100%问题如何快速定位?

    找到相关服务 xff0c 如何定位问题代码 xff0c 也非常考验技术人的功底 xff0c 今天简单说下思路 假设 xff0c 服务器上部署了若干Java站点服务 xff0c 以及若干Java微服务 xff0c 突然收到运维的CPU异常告警
  • Oracle存储过程编写经验和优化措施

    一 前言 在经过一段时间的存储过程开发之后 xff0c 写下了一些开发时候的小结和经验与大家共享 xff0c 希望对大家有益 二 适合读者对象 数据库开发程序员 xff0c 数据库的数据量很多 xff0c 涉及到对SP xff08 存储过程
  • 2019年上千道Java面试题,还在等什么

    Spring 面试题 1 一般问题 1 1 不同版本的 spring Framework 有哪些主要功能 xff1f 1 2 什么是 spring Framework xff1f 1 3 列举 spring Framework 的优点 1
  • echarts折线图的每个折点都显示数值

    在 series中添加 itemStyle span class token punctuation span span class token punctuation span normal span class token punctu
  • Mysql数据库学习大全

    1 数据库概述 1 1 什么是数据库 数据库 xff1a 存储和管理数据的仓库 数据库是一个专业的存储和管理数据的软件系统 xff0c 比传统的人工或文件保存数据小路更高 更安全 更可靠 数据库有哪些分类 了解 早期 xff1a 层次是数据
  • 智慧物业大数据可视化平台

    智慧物业大数据可视化平台HTML5页面设计 每周不定期分享相关开发的作品 xff0c 且分享的项目是本站验证过且可运行的程序 xff0c 希望能帮助到你们 计算机毕业设计 源程序 43 论文 43 开题报告 43 效果截图 联系QQ 226
  • 无操作15分钟后自动调到最低亮度

    diff git a frameworks base services core java com android server power PowerManagerService java b frameworks base servic
  • 学习超市管理系统的搭建与实现

    项目描述 通过开发基于SSM的超市信息化管理系统 xff0c 根据超市管理业务流程系统处理 xff0c 解决超市营业员手动管理的工作看 xff0c 超市管理员只需要对商品信息 供货商信息 销售价格管理 超市会员信息记录和管理 根据业务要求划
  • 韩国程序员面试考什么?

    大家好 xff0c 我是程序猿麦小七 xff0c 在G站闲逛的时候 xff0c 从每日热门上 xff0c 看到一个韩国的技术面试项目 xff0c 感觉有点好奇 xff0c 忍不住点进去看看 韩国的面试都考什么 xff1f 有没有国内的卷呢
  • 一名程序员的电脑桌面

    配置 xff1a 酷呆桌面注册表隐藏快捷方式箭头图标开启桌面模式自动隐藏任务栏 酷呆桌面 在选择酷呆之前 xff0c 一直是使用的Fences xff0c 他的桌面切换功能非常赞 xff0c 适合划分工作区 但由于强迫症实在是忍受不了肉眼可
  • 再有人问你如何实现订单到期关闭,就把这篇文章发给他!

    在电商 支付等系统中 xff0c 一般都是先创建订单 xff08 支付单 xff09 xff0c 再给用户一定的时间进行支付 xff0c 如果没有按时支付的话 xff0c 就需要把之前的订单 xff08 支付单 xff09 取消掉 这种类似
  • 基于Java的二手交易市场系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于个性化推荐的图书网站设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情

随机推荐

  • Spring Boot + WebSocket 实时监控异常

    写在前面 此异常非彼异常 xff0c 标题所说的异常是业务上的异常 最近做了一个需求 xff0c 消防的设备巡检 xff0c 如果巡检发现异常 xff0c 通过手机端提交 xff0c 后台的实时监控页面实时获取到该设备的信息及位置 xff0
  • 高可用架构的设计方法

    概述 高可用 High Availability xff0c 简称HA xff0c 是衡量IT系统服务质量的一个极其重要的参考 xff0c 高可用一直是IT系统设计中需要重点关注的点 本文总结高可用架构中的一些关键设计思想 衡量指标SLA
  • 基于JavaWeb的四季青敬老院系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • Hippo4j 官宣!Hippo4j 1.4.x 新版本正式发布,探索更多玩法

    2022 年 11 月 06 日 xff0c Hippo4j 1 4 3 版本正式发布 xff01 Hippo4j 是一个线程池框架 xff0c 基于 JDK 原生线程池扩展了诸多功能 xff0c 比如 xff1a 运行时动态变更线程池参数
  • linux 查看so库文件函数信息

    我的环境是ubuntu16 04 glibc官网 xff1a http www gnu org software libc libc html 方法一 一般来说 xff0c 涉及到库调用的程序 xff0c 在链接时候都会链接到glibc x
  • 利用Session完成用户的登录和注销

    用户的登录和注销是最常见的Web应用案例 xff0c 当一个应用的客户登录了以后 xff0c 其他所有的会话都得知道这个用户已经登录还很有可能得提取用户的昵称予以显示等等 xff0c 所以 xff0c 只有把登录成功的用户的信息放入到Ses
  • 聊聊工作中,如何提升自己的编程能力?

    在工作中 xff0c 我们大部分的时间都是在阅读代码 xff0c 阅读别人的代码也是我们工作中的一部分 xff0c 真正花在写代码上的时间其实并不多 我们应该都有这样的体会 xff0c 那就是刚入职一家新公司 xff0c 需要维护公司的一些
  • 基于JavaWeb的订餐管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于JavaWeb的电影网站的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于SSM滑雪场预约管理系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于ssm的固定收益营销系统设计与实现(ERP系统)

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于SSM花卉商城设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于JavaWeb的小区物业管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给在家介绍一篇健身俱乐部信息管理系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给在家介绍一篇基于jsp的旅游网站设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于Java Web的汽车租赁系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • PackageManagerService分析(Android 10)->应用安装的整体流程

    https blog csdn net woai110120130 article details 109141076
  • 基于移动应用的城市公共气象服务平台的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • Java线程池的一点总结

    主要用来做两件事 1 利用多核CPU的并发处理能力提高工作效率 2 避免线程的频繁创建和销毁带来的开销来提高工作效率 任务提交到线程池后的处理逻辑 1 提交任务到线程池 2 核心线程池是否已满 xff0c 没满则创建核心线程数个线程来处理任
  • 基于移动品台的产品追溯系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情