基于SpringBoot+Thymeleaf仓库管理系统
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
随着信息技术的快速发展,仓库管理系统成为了现代企业不可或缺的重要组成部分。SpringBoot和Thymeleaf作为流行的Java开发框架和模板引擎,提供了快速、高效的Web应用开发解决方案。基于SpringBoot+Thymeleaf的仓库管理系统可以利用其丰富的功能和灵活的扩展性,实现仓库的库存管理、进销存等核心业务功能,并提供友好的用户界面。本研究旨在探索基于该技术组合的仓库管理系统在实际应用中的效果和潜在优势,为企业提供更便捷、高效的仓库管理解决方案。
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
- Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
- Thymeleaf:thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。
Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
三、系统功能模块介绍:

四、数据库设计:
1:bus_customer(bus_customer)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| customername | varchar | NULL | |
| zip | varchar | NULL | |
| address | varchar | NULL | |
| telephone | varchar | NULL | |
| connectionperson | varchar | NULL | |
| phone | varchar | NULL | |
| bank | varchar | NULL | |
| account | varchar | NULL | |
| varchar | NULL | ||
| fax | varchar | NULL | |
| available | int | NULL |
2:bus_goods(bus_goods)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| goodsname | varchar | NULL | |
| produceplace | varchar | NULL | |
| size | varchar | NULL | |
| goodspackage | varchar | NULL | |
| productcode | varchar | NULL | |
| promitcode | varchar | NULL | |
| description | varchar | NULL | |
| price | double | NULL | |
| number | int | NULL | |
| dangernum | int | NULL | |
| goodsimg | varchar | NULL | |
| available | int | NULL | |
| providerid | int | NULL |
3:bus_inport(bus_inport)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| paytype | varchar | NULL | |
| inporttime | datetime | NULL | |
| operateperson | varchar | NULL | |
| number | int | NULL | |
| remark | varchar | NULL | |
| inportprice | double | NULL | |
| providerid | int | NULL | |
| goodsid | int | NULL |
4:bus_outport(bus_outport)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| providerid | int | NULL | |
| paytype | varchar | NULL | |
| outputtime | datetime | NULL | |
| operateperson | varchar | NULL | |
| outportprice | double | NULL | |
| number | int | NULL | |
| remark | varchar | NULL | |
| goodsid | int | NULL |
5:bus_provider(bus_provider)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| providername | varchar | NULL | |
| zip | varchar | NULL | |
| address | varchar | NULL | |
| telephone | varchar | NULL | |
| connectionperson | varchar | NULL | |
| phone | varchar | NULL | |
| bank | varchar | NULL | |
| account | varchar | NULL | |
| varchar | NULL | ||
| fax | varchar | NULL | |
| available | int | NULL |
6:bus_sales(bus_sales)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| customerid | int | NULL | |
| paytype | varchar | NULL | |
| salestime | datetime | NULL | |
| operateperson | varchar | NULL | |
| number | int | NULL | |
| remark | varchar | NULL | |
| saleprice | decimal | NULL | |
| goodsid | int | NULL |
7:bus_salesback(bus_salesback)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| customerid | int | NULL | |
| paytype | varchar | NULL | |
| salesbacktime | datetime | NULL | |
| salebackprice | double | NULL | |
| operateperson | varchar | NULL | |
| number | int | NULL | |
| remark | varchar | NULL | |
| goodsid | int | NULL |
8:sys_dept(sys_dept)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| pid | int | NULL | |
| title | varchar | NULL | |
| open | int | NULL | |
| remark | varchar | NULL | |
| address | varchar | NULL | |
| available | int | NULL | 状态【0不可用1可用】 |
| ordernum | int | NULL | 排序码【为了调事显示顺序】 |
| createtime | datetime | NULL |
9:sys_loginfo(sys_loginfo)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| loginname | varchar | NULL | |
| loginip | varchar | NULL | |
| logintime | datetime | NULL |
10:sys_notice(sys_notice)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| title | varchar | NULL | |
| content | text | NULL | |
| createtime | datetime | NULL | |
| opername | varchar | NULL |
11:sys_permission(sys_permission)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| pid | int | NULL | |
| type | varchar | NULL | 权限类型[menu/permission] |
| title | varchar | NULL | |
| percode | varchar | NULL | 权限编码[只有type= permission才有 user:view] |
| icon | varchar | NULL | |
| href | varchar | NULL | |
| target | varchar | NULL | |
| open | int | NULL | |
| ordernum | int | NULL | |
| available | int | NULL | 状态【0不可用1可用】 |
12:sys_role(sys_role)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| name | varchar | NULL | |
| remark | varchar | NULL | |
| available | int | NULL | |
| createtime | datetime | NULL |
13:sys_role_permission(sys_role_permission)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| rid | int | NULL | |
| pid | int | NULL |
14:sys_role_user(sys_role_user)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| rid | int | NULL | |
| uid | int | NULL |
15:sys_user(sys_user)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| name | varchar | NULL | |
| loginname | varchar | NULL | |
| address | varchar | NULL | |
| sex | int | NULL | |
| remark | varchar | NULL | |
| pwd | varchar | NULL | |
| deptid | int | NULL | |
| hiredate | datetime | NULL | |
| mgr | int | NULL | |
| available | int | NULL | |
| ordernum | int | NULL | |
| type | int | NULL | 用户类型[0超级管理员1,管理员,2普通用户] |
| imgpath | varchar | NULL | 头像地址 |
| salt | varchar | NULL |
五、功能模块:
-
后台首页:最新文章、实时时间显示

-
登录:

-
基础管理:客户管理、供应商管理、商品管理

-
进货管理:商品进退货、商品退货查询

-
系统管理:系统管理、菜单管理、权限管理、角色管理、用户管理

-
其他管理:登录日志、系统公告、图标管理、缓存管理

-
其他功能:清除缓存、锁屏、个人信息修改、修改密码

六、代码示例:
/*** 生成验证码*/@GetMapping("/captchaImage")public AjaxResult getCode(HttpServletResponse response) throws IOException{AjaxResult ajax = AjaxResult.success();boolean captchaEnabled = configService.selectCaptchaEnabled();ajax.put("captchaEnabled", captchaEnabled);if (!captchaEnabled){return ajax;}// 保存验证码信息String uuid = IdUtils.simpleUUID();String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;String capStr = null, code = null;BufferedImage image = null;// 生成验证码String captchaType = RuoYiConfig.getCaptchaType();if ("math".equals(captchaType)){String capText = captchaProducerMath.createText();capStr = capText.substring(0, capText.lastIndexOf("@"));code = capText.substring(capText.lastIndexOf("@") + 1);image = captchaProducerMath.createImage(capStr);}else if ("char".equals(captchaType)){capStr = code = captchaProducer.createText();image = captchaProducer.createImage(capStr);}redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);// 转换流信息写出FastByteArrayOutputStream os = new FastByteArrayOutputStream();try{ImageIO.write(image, "jpg", os);}catch (IOException e){return AjaxResult.error(e.getMessage());}ajax.put("uuid", uuid);ajax.put("img", Base64.encode(os.toByteArray()));return ajax;}/*** 通用的本地文件上传** @param multipartFile 文件对象* @return 文件访问链接URL*/@PostMapping("/file")public SimpleResponse uploadImg(@RequestParam("file") MultipartFile file) {// 文件后缀String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);File savePathFile = new File(newTomcatFolder);if (!savePathFile.exists()) {// 若不存在该目录,则创建目录savePathFile.mkdir();}// 通过UUID生成唯一文件名String filename = UUID.randomUUID() + "." + suffix;try {// 将文件保存指定目录file.transferTo(new File(newTomcatFolder + filename));} catch (Exception e) {e.printStackTrace();return SimpleResponse.error("保存文件异常");}// 返回访问链接return SimpleResponse.success(newTomcatHost + filename);}@PostMapping("/login")public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {return ReturnMsg.error("用户名或密码错误!");}ManageDTO manageDTO = new ManageDTO();manageDTO.setUserName(param.get("username"));manageDTO.setPassWord(param.get("password"));QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);manageDTOQueryWrapper.last("limit 1");ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");Map<String, Object> map = new HashMap<>();map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");map.put("introduction", adminDTOS.getName() + ",你好!");map.put("name", adminDTOS.getName());map.put("roles", Arrays.asList("admin"));map.put("type", adminDTOS.getStatus());Map<String, String> returnMap = new HashMap<>();String uuid = UUID.randomUUID().toString();returnMap.put("token", uuid);userInfoMap.put(uuid, JSON.toJSONString(map));return ReturnMsg.ok(returnMap);}
七、项目总结:
开发基于SpringBoot+Thymeleaf仓库管理系统是作为毕设作品进行设计的,这个毕设作品是我在校进行知识学习的一个毕业考核项目,也是检验我通过网络工具,图书工具等学习工具进行自学的能力水平,让我在根据程序开发的需求分析初步完成程序功能之外,还接触了程序的测试过程,了解程序测试的具体的过程,以及遇到问题怎么去寻找相应的解决办法等等,毕业作品的制作以及设计才是学校对我真正的考验。
在程序软件没能进行开发之前,我去了学校的图书馆借了有关数据库操作的书籍,在查看了sqlserver和mysql两种数据库的相关知识之后,我最后选择了我比较熟悉的mysql数据库。在编程语言的抉择上,由于自己之前接触过Java程序的开发,所以为了让我尽快在短时间内完成程序制作,我确定用Java编程语言进行程序编程。另外我从百度上下载了很多的有关信息增加,信息删除等操作的源代码,并通过不断调试以及完成配套的数据库的设计,开始完成程序的各个部分的功能。每当我粗心大意,致使我深陷程序开发困扰不能自拔之时,值得庆幸的是,我就会得到老师,还有我的寝室同学的耐心指导。
历经长达几个月的毕业作品制作,我凭借自己的知识技能,还有大家的指导帮助,能够在学校规定的时间段之内提交毕业作品。虽然已经算是完成了毕业作品,但是付出了这么多心血,还是想把这个作品做得更加完美一点。针对我的毕业作品学生信息管理系统,我觉得还有很多方面需要完善,第一就是界面上需要细微调整,比如色彩搭配有点违背广众的审美,需要细微调整,还有系统里面的字体大小也需要调大一点,太小的字体看起来有些费眼。然后在程序的功能上因为自己的入门开发水平的影响,所以目前只能做到这个境界,这个系统相比其他类似系统来说功能很简单,逻辑结构设计得也比较合理。
自己一个人完成程序的开发,我不仅亲自体验了程序的开发流程,体验到了程序开发的各种不易。这种体验也还加深了我对知识的尊重。学海无涯,知识不是大学短短四年就能学完的,在大学学到的知识在最终经历检验时,才会深深地明白自己的知识积累原来还很浅薄。所以今后不管身在何处,自己的学习心态一定要时刻体现出来,要深刻明白知识学到手里就是自己的。同时,自己也不必过多抱怨学到的知识没有用处,相信学到的知识总会有派上用处的那天。不要等到需要用时再去学习知识,那样就会导致自己错失很多本该属于自己的机遇。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接
相关文章:
基于SpringBoot+Thymeleaf仓库管理系统
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着信息技术的快速发…...
ubuntu20.04磁盘满了 /dev/mapper/ubuntu--vg-ubuntu--lv 占用 100%
问题 执行 mysql 大文件导入任务,最后快完成了,查看结果发现错了!悲催!都执行了 两天了 The table ‘XXXXXX’ is full ? 磁盘满了? 刚好之前另一个 centos 服务器上也出现过磁盘满了,因此&a…...
【制作npm包4】api-extractor 学习
制作npm包目录 本文是系列文章, 作者一个橙子pro,本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…...
神经网络基础-神经网络补充概念-52-正则化网络的激活函数
概念 正则化是一种用于减少过拟合(overfitting)的技术,可以在神经网络的各个层次中应用,包括激活函数。激活函数的正则化主要目的是减少神经网络的复杂度,防止网络在训练集上过度学习,从而提高泛化能力。 …...
代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离
TOC 前言 代码随想录算法训练营day56 一、Leetcode 583. 两个字符串的删除操作 1.题目 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 1: 输入: word1 "sea",…...
神经网络基础-神经网络补充概念-55-为什么是ML策略
“ML策略”(Machine Learning Strategies)是指在解决机器学习问题时,采取的一系列方法、技巧和策略。选择适当的ML策略对于获得高质量的模型和结果非常重要。以下是为什么要考虑ML策略的一些原因: 问题适应性:不同的机…...
C++初阶语法——内部类
前言:内部类,顾名思义是定义在类中的类,许多人会以为它属于外部的类,实际上并不是,它们是两个独立的类,但是内部类受外部类类域的限制。 目录 一.概念二.特性1.内部类和外部类相互独立2.内部类是外部类的友…...
Java基础(十四)面向对象编程 OOP 多态
Java面向对象基础知识笔记(四) 1. 对象数组的使用 在Java中,我们可以创建包含对象的数组。对象数组是一种特殊类型的数组,其中每个元素都是一个对象的引用。你可以将任何类的对象存储在对象数组中,并通过索引来访问和操…...
【Android】解决Lint found fatal errors while assembling a release target
报错信息: Android在debug模式下打包没有问题,但是在打包release版本时出现一下问题: 结果图 原因 我项目的原因是因为把正式、测试地址放到代码里了,忘记选中正式环境的地址,导致打正式包有问题;大家如果…...
CF1195E OpenStreetMap 题解
很好的单调队列题。 题目传送门 题目意思: 给定一个 n m n\times m nm 的矩阵,求出所有大小为 a b a\times b ab 的子矩形中的最小值的和。 思路: 通过题目给的要求建立二维数组 h h h。通过单调队列一行一行地扫,将扫出来…...
微信营销系统如何使用效果会更好
微信作为中国最大的社交平台之一,已经成为企业私域营销的重要阵地。在这个庞大的社交网络中,如何使用微信营销系统,将直接影响到企业的营销效果。本文将深入探讨如何更好地利用微信营销系统,以实现更好的私域营销效果。 1. 确定营…...
Linux开机启动程序添加root权限
Linux添加开机启动程序 Debain、Ubuntu系列Linux开机之后会执行/etc/rc.local文件中的命令,所以,如果是想添加登陆用户所具有权限的操作,可以在文件中exit 0之前添加开机自动执行的脚本命令。或者将执行脚本的权限修改为当前登录用户具有执行…...
安卓13解决链接问题
作为Android用户,你可能已经注意到了一个问题——Android 13不再支持PPTP协议。但请别担心,作为一家专业的代理供应商,我们将与你分享解决方案,让你轻松解决L2TP问题,享受到高水平的连接体验。本文将为你提供实用的操作…...
《乡村振兴战略下传统村落文化旅游设计 》在2023年畅销榜排名465位
《乡村振兴战略下传统村落文化旅游设计 》在2023年畅销榜排名465位...
实现一个自动保存高CPU占用现场的简易工具
CPU 使用率在系统监控中是一个非常重要的指标。对于大多数 Web 应用来说,它们往往是 IO 密集型的,因此只会在某些时刻可能会出现 CPU 突然飙升的情况,随后很快就恢复正常。然而,当收到报警并想要排查问题时,CPU 飙升的…...
易服客工作室:如何在WordPress网站中举办虚拟活动
您是否正在寻找举办和管理虚拟活动的最佳方式? 也许您想在线举行下一次会议或举办有关您的产品和服务的网络研讨会。您可能担心它太贵,或者您没有技术知识来实现它。 在本文中,我们将列出您所需的在线服务的所有设备,并教您…...
Java IO流(一)IO基础
概述 IO流本质 I/O表示Input/Output,即数据传输过程中的输入/输出,并且输入和输出都是相对于内存来讲Java IO(输入/输出)流是Java用于处理数据读取和写入的关键组件常见的I|O介质包括 文件(输入|输出)网络(输入|输出)键盘(输出)显示器(输出)使用场景 文件拷贝(File&…...
区间覆盖 线段覆盖 二分
4195. 线段覆盖 - AcWing题库 P2082 区间覆盖(加强版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 做法: void solve() {int n; cin>>n;vector<array<LL,2>> seg(n);for(auto &t: seg) cin>>t[0]>>…...
F#奇妙游(20):主动模式
F#中主动模式的三种形式 F#中有一种特殊的模式匹配,叫做主动模式(Active Pattern)。主动模式可以让我们自定义模式匹配的方式,这样可以让我们的代码更加简洁,更加清晰。主动模式有三种形式,分别是…...
OLED透明屏与传统显示屏的区别:探索未来视觉体验的新里程碑
OLED透明屏作为一种新兴的显示技术,与传统显示屏相比,具有许多独特的特点和优势。 那么,在这篇文章中,尼伽便通过比较OLED透明屏和传统显示屏的区别,包括透明性、对比度、色彩表现力、节能环保等方面,为读…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
