当前位置: 首页 > news >正文

基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

仓库管理系统 某物流公司主要从事电子类产品的配送服务,仓储在企业的整个供应链中起 着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理 费用的增加,服务质量难以得到保证,从而影响企业的竞争力。传统简单、静态 的仓储管理已无法保证企业各种资源的高效利用。如今的仓库作 业和库存控制 作 仓库管理系统 某物流公司主要从事电子类产品的配送服务,仓储在企业的整个供应链中起 着至关重要的作用

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  3. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  4. shiro:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
  5. layui:layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,常适合网页界面的快速开发。layui 区别于那些基于MVVM 底层的前端框架,它更多是面向后端开发者,无需涉足前端各种工具,只需面对浏览器本身,让一切所需要的元素与交互。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

  1. bus_customer(bus_customer)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | customername | varchar(255) | NULL | |
    | zip | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | telephone | varchar(255) | NULL | |
    | connectionperson | varchar(255) | NULL | |
    | phone | varchar(255) | NULL | |
    | bank | varchar(255) | NULL | |
    | account | varchar(255) | NULL | |
    | email | varchar(255) | NULL | |
    | fax | varchar(255) | NULL | |
    | available | int(11) | NULL | |

  2. bus_goods(bus_goods)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | goodsname | varchar(255) | NULL | |
    | produceplace | varchar(255) | NULL | |
    | size | varchar(255) | NULL | |
    | goodspackage | varchar(255) | NULL | |
    | productcode | varchar(255) | NULL | |
    | promitcode | varchar(255) | NULL | |
    | description | varchar(255) | NULL | |
    | price | double | NULL | |
    | number | int(11) | NULL | |
    | dangernum | int(11) | NULL | |
    | goodsimg | varchar(255) | NULL | |
    | available | int(11) | NULL | |
    | providerid | int(11) | NULL | |

  3. bus_inport(bus_inport)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | inporttime | datetime(0) | NULL | |
    | operateperson | varchar(255) | NULL | |
    | number | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | inportprice | double | NULL | |
    | providerid | int(11) | NULL | |
    | goodsid | int(11) | NULL | |

  4. bus_outport(bus_outport)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | providerid | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | outputtime | datetime(0) | NULL | |
    | operateperson | varchar(255) | NULL | |
    | outportprice | VARCHAR(255) | NULL | |

  5. bus_provider(bus_provider)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | providername | varchar(255) | NULL | |
    | zip | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | telephone | varchar(255) | NULL | |
    | connectionperson | varchar(255) | NULL | |
    | phone | varchar(255) | NULL | |
    | bank | varchar(255) | NULL | |
    | account | varchar(255) | NULL | |
    | email | varchar(255) | NULL | |
    | fax | varchar(255) | NULL | |
    | available | int(11) | NULL | |

  6. bus_sales(bus_sales)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | customerid | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | salestime | datetime(0) | NULL | |
    | operateperson | varchar(255) | NULL | |
    | number | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | saleprice | VARCHAR(255) | NULL | |

  7. bus_salesback(bus_salesback)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | customerid | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | salesbacktime | datetime(0) | NULL | |
    | salebackprice | VARCHAR(255) | NULL | |

  8. sys_dept(sys_dept)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | pid | int(11) | NULL | |
    | title | varchar(255) | NULL | |
    | open | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | available | int(11) | NULL | 状态【0不可用1可用】 |
    | ordernum | int(11) | NULL | 排序码【为了调事显示顺序】 |
    | createtime | datetime(0) | NULL | |

  9. sys_loginfo(sys_loginfo)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | loginname | varchar(255) | NULL | |
    | loginip | varchar(255) | NULL | |
    | logintime | datetime(0) | NULL | |

  10. sys_notice(sys_notice)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | title | varchar(255) | NULL | |
    | content | text | NULL | |
    | createtime | datetime(0) | NULL | |
    | opername | varchar(255) | NULL | |

  11. sys_permission(sys_permission)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | pid | int(11) | NULL | |
    | type | varchar(255) | NULL | 权限类型[menu/permission] |
    | title | varchar(255) | NULL | |
    | percode | varchar(255) | NULL | 权限编码[只有type=permission才有user:view] |
    | icon | varchar(255) | NULL | |
    | href | varchar(255) | NULL | |
    | target | varchar(255) | NULL | |
    | open | int(11) | NULL | |
    | ordernum | int(11) | NULL | |
    | available | int(11) | NULL | 状态【0不可用1可用】 |

  12. sys_role(sys_role)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | name | varchar(255) | NULL | |
    | remark | varchar(255) | NULL | |
    | available | int(11) | NULL | |
    | createtime | datetime(0) | NULL | |

  13. sys_role_permission(sys_role_permission)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | rid | int(11) | NULL | |
    | pid | int(11) | NULL | |

  14. sys_user(sys_user)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | name | varchar(255) | NULL | |
    | loginname | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | sex | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | pwd | varchar(255) | NULL | |
    | deptid | int(11) | NULL | |
    | hiredate | datetime(0) | NULL | |
    | mgr | int(11) | NULL | |
    | available | int(11) | NULL | |
    | ordernum | int(11) | NULL | |
    | type | int(255) | NULL | 用户类型[0超级管理员1,管理员,2普通用户] |
    | imgpath | varchar(255) | NULL | 头像地址 |
    | salt | varchar(255) | NULL | |

五、功能模块:

  1. 客户管理:客户管理主要存储一些仓库客户的一些基本信息,包括各种条件模糊查询,删除,编辑等功能

    客户管理

  2. 供应商管理:存款仓库系统中所有的供应商信息
    在这里插入图片描述

  3. 商品管理:此模块主要对仓库中所有商品的管理,包括商品添加,删除修改等

在这里插入图片描述

  1. 销售额统计模块:主要对商品的入库,出库金额进行统计,从而形成销售额的图表,以供管理员查看

    销售额统计模块

六、代码示例:

客户管理
@RequestMapping("loadAllCustomer")public DataGridView loadAllCustomer(CustomerVo customerVo) {IPage<Customer> page = new Page<>(customerVo.getPage(), customerVo.getLimit());QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()), "customername",customerVo.getCustomername());queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()), "phone", customerVo.getPhone());queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionperson()), "connectionperson",customerVo.getConnectionperson());this.customerService.page(page, queryWrapper);return new DataGridView(page.getTotal(), page.getRecords());}
供应商管理
/*** 加载所有可用的供应商*/@RequestMapping("loadAllProviderForSelect")public DataGridView loadAllProviderForSelect() {QueryWrapper<Provider> queryWrapper=new QueryWrapper<>();queryWrapper.eq("available", Constast.AVAILABLE_TRUE);List<Provider> list = this.providerService.list(queryWrapper);return new DataGridView(list);}
商品管理
@RequestMapping("loadAllGoods")public DataGridView loadAllGoods(GoodsVo goodsVo) {IPage<Goods> page = new Page<>(goodsVo.getPage(), goodsVo.getLimit());QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,"providerid",goodsVo.getProviderid());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()), "goodsname", goodsVo.getGoodsname());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()), "productcode", goodsVo.getProductcode());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()), "promitcode", goodsVo.getPromitcode());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()), "description", goodsVo.getDescription());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()), "size", goodsVo.getSize());this.goodsService.page(page, queryWrapper);List<Goods> records = page.getRecords();for (Goods goods : records) {Provider provider = this.providerService.getById(goods.getProviderid());if(null!=provider) {goods.setProvidername(provider.getProvidername());}}return new DataGridView(page.getTotal(), records);}
销售额统计模块
	@RequestMapping("loadAllOutport")public DataGridView loadAllOutport(OutportVo outportVo) {IPage<Outport> page = new Page<>(outportVo.getPage(), outportVo.getLimit());QueryWrapper<Outport> queryWrapper = new QueryWrapper<>();queryWrapper.eq(outportVo.getProviderid()!=null&&outportVo.getProviderid()!=0,"providerid",outportVo.getProviderid());queryWrapper.eq(outportVo.getGoodsid()!=null&&outportVo.getGoodsid()!=0,"goodsid",outportVo.getGoodsid());queryWrapper.ge(outportVo.getStartTime()!=null, "outputtime", outportVo.getStartTime());queryWrapper.le(outportVo.getEndTime()!=null, "outputtime", outportVo.getEndTime());queryWrapper.like(StringUtils.isNotBlank(outportVo.getOperateperson()), "operateperson", outportVo.getOperateperson());queryWrapper.like(StringUtils.isNotBlank(outportVo.getRemark()), "remark", outportVo.getRemark());queryWrapper.orderByDesc("outputtime");this.outportService.page(page, queryWrapper);List<Outport> records = page.getRecords();for (Outport outport : records) {Provider provider = this.providerService.getById(outport.getProviderid());if(null!=provider) {outport.setProvidername(provider.getProvidername());}Goods goods = this.goodsService.getById(outport.getGoodsid());if(null!=goods) {outport.setGoodsname(goods.getGoodsname());outport.setSize(goods.getSize());}}return new DataGridView(page.getTotal(), records);}

七、项目总结:

 对于本次的系统开发来看,它主要是把我以前所学的知识进行了一次综合的应用。经过这次毕业设计的制作它主要是把我以前所学的理论知识应用到社会实践当中。通过这一次的仓库管理平台网站的设计与实现它能够有效把计算机知识与实际问题相互应用,通过计算机网络技术来解决用户生活当中的实际问题,从而提高我的编程能力。虽然在这次毕业设计当中我遇到了很多的问题和困难,但是通过不断的调试和老师的帮助让我圆满的完成了这次毕业设计。通过这次毕业设计的制作让我对计算机实际应用得到了很强的锻炼,同时也大大的提高了我的动手动脑能力,让我也感受到了其中的乐趣和喜悦。通过这次毕业设计的撰写把我在大学期间所学到的东西都应用上了,但是我觉得还是微不足道的,因为在这次毕业设计当中让我深深的了解到对于软件开发和学习理论知识它是两个完全不同的概念。但是通过这次软件的开发让我在以后的工作当中打下了良好的基础。

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

项目获取链接

链接点击直达:下载链接

相关文章:

基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

基于JAVASpringBootLayUIShiro的仓库管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项…...

金三银四面试必看,复盘字节测试开发面试:一次测试负责人岗位面试总结

最近面试了某企业的测试负责人岗位&#xff0c;历经四面&#xff0c;收获蛮多的。 这篇文章&#xff0c;我想聊聊这次面试过程中的一些经历&#xff0c;以及些许经验和教训。 岗位要求 岗位名称&#xff1a;测试负责人 岗位要求&#xff1a;1、扎实的技术以及丰富的技术项目…...

【算法自由之路】 贪心算法

贪心算法 局部最右得到全局最右难点在于如何证明局部最优可以得到全局最优堆 和 排序 是贪心算法最常用的实现算法 贪心算法作为最符合自然智慧的算法&#xff0c;思路是从小部分取最优从而获得最终的最优&#xff0c;但是难得是怎样获取部分最优才能得到全局最优。 有时候我…...

Scratch少儿编程案例-水果忍者-学生作业

专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

7.Docker Compose

Docker Compose 介绍 Docker Compose是Docker官方编排&#xff08;Orchestration&#xff09;项目之一&#xff0c;负责快速的部署分布式应用。其代码目前在https://github.com/docker/compose上开源。Compose 定位是 「定义和运行多个 Docker 容器的应用&#xff08;Definin…...

GitHub访问问题与 Steam++下载及使用(适合小白)

前言 &#x1f4dc; “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴 ​ 目录 前言 一、Steam的介绍 1、大概介绍 2、详细介绍 二、Ste…...

Oracle对象——视图之简单视图与视图约束

文章目录什么是视图为什么会使用视图视图语法案例简单视图的创建更改数据基表&#xff0c;视图数据会变化么&#xff1f;更改视图数据&#xff0c;基表数据会变更么&#xff1f;带检查约束的视图结论创建只读视图&#xff08;MySQL不支持&#xff09;总结什么是视图 视图是一种…...

SAP模块常用增强总结

MM模块&#xff1a; 采购订单增强&#xff1a; BADI &#xff1a;ME_GUI_PO_CUST ME_PROCESS_PO_CUST 物料凭证增强&#xff1a; BADI&#xff1a;MB_DOCUMENT_BADI USER-EXIT&#xff1a;MBCF0002 实现功能1、当参照预留过帐时&#xff0c;检查填入数量是否小于预留数量 2…...

当make执行遇到 Arguments too long

1. 问题 Ubuntu20.04上make编译生成so的时候报错&#xff1a; make[1]:execvp:/bin/sh:Arguments too long对应makefile中的报错位置&#xff0c;仅仅是生成so的时候报错&#xff0c;伪代码如下 ${build_tool} -shared -fpic -o "$" ${OBJ_FILE} ${LDFLAGS}然而如…...

《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)

1.简介 上一篇文章中&#xff0c;从TestNg的特点我们知道支持变量&#xff0c;那么我们这一篇就通过变量参数来启动不同的浏览器进行自动化测试。那么如何实现同时启动不同的浏览器对脚本进行测试&#xff0c;且听我娓娓道来。 2.项目实战 2.1创建一个TestNg class 1.首先按…...

Maven基础

Maven简介 传统项目&#xff1a; jar包不统一 不兼容 项目中有部分jar包会升级 没升级的部分会起冲突 管理复杂 Maven本质是一个项目管理工具 pom POM Project Object Model 项目对象模型 把项目以对象形式进行管理 先写 pom.xml 的配置文件 代表一个项目 1个项目对应1个po…...

C++入门:初识类和对象

C入门&#xff1a;类和对象1 本节目录C入门&#xff1a;类和对象11.auto关键字&#xff08;C11)1.1类型别名思考1.2auto简介typeid运算符&#xff1a;获取类型信息1.3 auto的使用细则1.4auto不能推到的场景2.基于范围的for循环(C11)2.1范围for的语法2.2范围for的使用条件3.指针…...

BERT在CNN上也能用?看看这篇ICLR Spotlight论文丨已开源

如何在卷积神经网络上运行 BERT&#xff1f;你可以直接用 SparK —— 字节跳动技术团队提出的提出的稀疏层次化掩码建模 ( Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling )&#xff0c;近期已被人工智能顶会 ICLR 2023 收录为 Spotligh…...

【MFC】模拟采集系统——界面设计(17)

功能介绍 启动界面 开始采集&#xff1a; PS&#xff1a;不涉及 数据保存&#xff0c;重现等功能 界面设计 界面分为三块&#xff1a;顶部黑条带关闭按钮、左边对话框&#xff0c;右边的主界面 资源&#xff1a; 顶部黑条 top.bmp 2* 29 &#xff08;宽 * 高 像素点&…...

锐捷(十五)mpls vxn跨域optionc场景

一 实验拓扑二 实验需求ce1和ce2为两个分公司&#xff0c;要求两个分公司之间用mpls vxn 进行通信&#xff0c;组网方式是optionc。三 实验分析optionc在转发平面上有点难理解&#xff0c;有一些关键点需要注意&#xff0c;大家点击链接可以参考我上篇发过的一个文章&#xff1…...

2023备战金三银四,Python自动化软件测试面试宝典合集(七)

马上就又到了程序员们躁动不安&#xff0c;蠢蠢欲动的季节~这不&#xff0c;金三银四已然到了家门口&#xff0c;元宵节一过后台就有不少人问我&#xff1a;现在外边大厂面试都问啥想去大厂又怕面试挂面试应该怎么准备测试开发前景如何面试&#xff0c;一个程序员成长之路永恒绕…...

redis 主从复制

在redis的持久化RDB与AOF详解文章中&#xff0c;我们知道如果redis宕机了&#xff0c;我们可以通过AOF 和 RDB 文件的方式恢复数据&#xff0c;从而保证数据的丢失&#xff08;或少量损失&#xff09;从而提高稳定性。但是&#xff0c;如果我们数据只存在一台redis服务器中&…...

如何用Redis实现延迟队列

背景前段时间有个小项目需要使用延迟任务&#xff0c;谈到延迟任务&#xff0c;我脑子第一时间一闪而过的就是使用消息队列来做&#xff0c;比如RabbitMQ的死信队列又或者RocketMQ的延迟队列&#xff0c;但是奈何这是一个小项目&#xff0c;并没有引入MQ&#xff0c;我也不太想…...

项目文件相关总结

风险登记册 风险登记册记录了已识别单个风险的详细信息。其主要内容包括: 已识别的风险清单潜在的风险责任人潜在的风险应对措施清单风险管理计划要求的其他信息供方选择标准 供方选择标准用于确保选出的建议书将提供最佳质量的所需服务,主要内容 包括: 能力和潜力产品成本…...

ZooKeeper集群搭建步骤

一、准备虚拟机准备三台虚拟机&#xff0c;对应ip地址和主机名如下&#xff1a;ip地址Hostname192.168.153.150ant163192.168.153.151ant164192.168.153.152ant165修改hostname&#xff0c;并使之生效[rootlocalhost /]# hostnamectl set-hostname zookeeper1 //修改hostname …...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

规则与人性的天平——由高考迟到事件引发的思考

当那位身着校服的考生在考场关闭1分钟后狂奔而至&#xff0c;他涨红的脸上写满绝望。铁门内秒针划过的弧度&#xff0c;成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定"&#xff0c;构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...