当前位置: 首页 > 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 …...

网际协议IP

网际协议IP 文章目录网际协议IP[toc]虚拟互联网IP地址及其表示方法分类IP地址(两级)无分类编址 CIDR网路前缀地址块地址掩码子网划分&#xff08;三级IP地址&#xff09;IP地址和MAC地址地址解析协议ARPIP数据报的格式IP数据报首部的固定部分中的各字段IP数据报首部的可变部分分…...

Python 语言参考手册、教程、标准库

官方文档&#xff1a;https://docs.python.org/zh-cn/3.11/ Python 语言参考手册 介绍了 Python 句法与“核心语义”。在力求简明扼要的同时&#xff0c;我们也尽量做到准确、完整。有关内置对象类型、内置函数、模块的语义在 Python 标准库 中介绍。有关本语言的非正式介绍&am…...

数据库连接池 BoneCP、HikariCP 等

文章目录 数据库连接池 BoneCP、HikariCP 等BoneCPDruidTomcat Jdbc PoolHikariCPC3p0DbcpLRUPSCachePS数据库连接池 BoneCP、HikariCP 等 BoneCP 官方说法 BoneCP 是一个高效、免费、开源的 Java 数据库连接池实现库 设计初衷就是为了提高数据库连接池性能,根据某些测试数…...

博客系统 SSM 超强硬核良心推荐之第一弹 - 预备工作

硬核 ! 从 0 到 1 完美实现 SSM 版本的博客系统 , 学会保准不吃亏!一 . SSM 版本相比于 Servlet 版本的亮点二 . 初始化数据库三 . 前端页面3.1 注册页面3.2 登录功能3.3 文章总列表页3.4 自己的文章列表页3.5 文章详情页3.6 编写博客页面大家好 , 这是新的专栏 , 博客系统 SSM…...

[Web] 简单瀑布流布局实现

目前的纯 CSS 布局, 是没办法实现比较完美的瀑布流布局的. 参考: CSS总结:瀑布流布局 - 黑白程序员 我使用 JS CSS, 并且自动布局实现了较为简单, 观赏性好的瀑布流布局. 代码 HTML: <!DOCTYPE html> <html lang"en"> <head><link rel&quo…...

多线程之死锁,哲学家就餐问题的实现

1.死锁是什么 死锁是这样一种情形&#xff1a;多个线程同时被阻塞&#xff0c;它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞&#xff0c;因此程序不可能正常终止。 2.哲学家就餐问题 有五个哲学家&#xff0c;他们的生活方式是交替地进行思考和进餐…...

UTF-8编码

介绍 UTF-8 编码 UTF-8 是一种针对 Unicode 的可变长度字符编码。 针对 Unicode&#xff1a;UTF-8 是 Unicode 的实现方式之一。相当于 Unicode 规定了字符对应的代码值&#xff0c;这个代码值需要转换为字节序列的形式&#xff0c;用于数据存储、传输。代码值到字节序列的转…...

likeshop单商户SaaS版V1.8.2说明!

likeshop单商户SaaS版V1.8.2主要更新如下&#xff1a; 新增 前端登录引导用户填写头像昵称 PC端—注册页面显示服务协议和隐私政策 PC端—首次进入商城弹出协议提示 PC端—结算页新增门店自提的配送方式 后台—PC端菜单导航栏的跳转链接支持添加自定义链接 ​​ ​​ ​ 优…...

算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零

算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零 最后一块石头的重量 II 1049. 最后一块石头的重量 II - 力扣&#xff08;LeetCode&#xff09; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xf…...

nginx-host绕过实例复现

绕过Nginx Host限制第一种处理方法Nginx在处理Host的时候&#xff0c;会将Host用冒号分割成hostname和port&#xff0c;port部分被丢弃。所以&#xff0c;我们可以设置Host的值为2023.mhz.pw:xxx"example.com&#xff0c;这样就能访问到目标Server块&#xff1a;第二种处理…...

wordpress 图片无法上传/网站策划书模板

您必须将每个标签输入组合包装在一个元素中,然后将该元素包装在某个容器中.此容器应具有最小宽度,并显示&#xff1a;inline-block ;.然后你让所有的输入项浮动到右边,你已经完成了.这导致了一个非常简单,干净和语义标记与eqaully清洁和可维护的CSS,没有JavaScript,jQuery或其他…...

微商怎么做网站/成都移动seo

一&#xff0e;问答题1. 简述电子计算机的用途和特点。电子计算机的用途非常广泛&#xff0c;主要应用领域有&#xff1a;(1)科学计算。 (2)自动控制。(3)信息处理。(4)计算机辅助设计。(5)人工智能。 (6)网络通信。(7)多媒体技术。电子计算机的特点主要有如下几点&#xff1a;…...

网架加工制造厂家/seosem顾问

vue3手写电商微信小程序&#xff08; 微信开发者工具&#xff09;【问题总结】该项目技术栈&#xff1a;vite3 vue3.2 pinia typeScript1、样式穿透在微信开发者工具不适用&#xff1a;2、v-html在微信开发者工具显示的是rich-text组件&#xff0c;导致样式不适用&#xff1…...

爱情网站设计/电商平台怎么注册

FPGA Editor&#xff0c;相信和Xilinx FPGA打过交道的人大都听说过&#xff0c;但用过的人就不是很多。我可以负责任的说&#xff0c;你一旦用过FPGA Editor&#xff0c;就会爱不释手&#xff0c;不能自已。 我毛华望QQ849886241。技术博客http://blog.csdn.net/my_share 好像…...

网站源码下载插件/杭州10大软件开发公司

昨晚安全新闻爆出一个“PHP任意文件上传漏洞”&#xff0c;CVE编号为&#xff1a;CVE-2015-2348。当时楼主正准备收拾东西回家&#xff0c;看到这个新闻心里一惊&#xff1a;失传江湖多年的0字符截断上传漏洞又重现了&#xff1f;而且还影响这么多版本&#xff01;如果漏洞属实…...

何苦做游戏网站/汕头seo

Its probably not unfair to call me a Twitter Power User. I use it a lot, its my favorite Social Networking site and Ive written a number of reasonably popular articles on the topic. 称我为Twitter高级用户可能并不公平。 我经常使用它&#xff0c;这是我最喜欢的…...