news 2026/3/31 13:46:12

java+vue+SpringBoot常规应急物资管理系统(程序+数据库+报告+部署教程+答辩指导)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java+vue+SpringBoot常规应急物资管理系统(程序+数据库+报告+部署教程+答辩指导)

源代码+数据库+LW文档(1万字以上)+开题报告+答辩稿ppt+部署教程+代码讲解+代码时间修改工具

技术实现

  1. 开发语言:后端:Java 前端:vue
  2. 框架:springboot
  3. 数据库:mysql

开发工具
JDK版本:JDK1.8
数据库:mysql 数据库工具:Navicat
开发软件:idea

主要角色及功能介绍
系统的总体功能设计阶段,是通过结合系统分析阶段的相关内容,对系统的整体功能设计进行规划的过程。系统的总体功能设计是系统详细功能设计的一个大方向,也就是说系统的各类子功能模块的设计,都是以总体功能设计为目标而进行的。通过对系统进行需求分析可知,可以大致了解系统具体所需要的相关的主要功能模块。本系统主要的功能需求包括物资信息管理、物资运输管理等模块。管理员功能设计图如图4-1所示,用户功能设计图如图4-2所示。

图4-1管理员功能设计图

图4-2用户功能设计图

数据库
本系统使用轻量级的MySQL数据库,对系统相关的数据信息进行管理和维护[12]。数据库设计阶段一般可以被分为概念设计和逻辑设计这两个阶段。概念设计阶段是对系统进行数据库设计的重要基础,将现实世界中用户的相关需求抽象化为虚拟世界中的概念模型,为后续的逻辑设计做好准备工作。本人通过设计E-R图,详细的对系统中的实体以及实体之间的联系进行了表达。各实体信息的实体属性图如图4-3、图4-4、图4-5、图4-6、图4-7、图4-8、图4-9、图4-10所示,系统总体E-R图如图4-11所示。

图4-3管理员信息实体属性图

图4-4用户信息实体属性图

图4-5字典信息实体属性图

图4-6部门信息实体属性图

图4-7物资信息实体属性图

图4-8物资申请信息实体属性图

图4-9 物资运输信息实体属性图

图4-10健康打卡信息实体属性图

图4-11系统总体E-R图
系统功能实现及截图
5.1管理员角色功能设计
5.1.1管理员首页
通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图5-1所示。

图5-1管理员首页界面
本功能模块的核心代码如下:

/** * 登录 */@IgnoreAuth@PostMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){UsersEntityuser=usersService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));if(user==null||!user.getPassword().equals(password)){returnR.error("账号或密码不正确");}Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole());Rr=R.ok();r.put("token",token);r.put("role",user.getRole());r.put("userId",user.getId());returnr;}/** * 列表 */@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,UsersEntityuser){EntityWrapper<UsersEntity>ew=newEntityWrapper<UsersEntity>();PageUtilspage=usersService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.allLike(ew,user),params),params));returnR.ok().put("data",page);}

5.1.2个人中心
通过设计的个人中心功能模块,管理用户可以选择修改账号密码,查看个人资料信息,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-1所示,个人信息界面设计如图5-2所示。

图5-1修改密码界面

图5-2个人信息界面
本功能模块的核心代码如下:

/** * 密码重置 */@IgnoreAuth@RequestMapping(value="/resetPass")publicRresetPass(Stringusername,HttpServletRequestrequest){UsersEntityuser=usersService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));if(user==null){returnR.error("账号不存在");}user.setPassword("123456");usersService.update(user,null);returnR.ok("密码已重置为:123456");}/** * 信息 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Stringid){UsersEntityuser=usersService.selectById(id);returnR.ok().put("data",user);}

5.1.3健康打卡管理
通过设计的健康打卡管理功能模块,管理用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图5-3所示。

图5-3健康打卡管理界面
本功能模块的核心代码如下:

/** * 健康打卡后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyDakaEntitydaka,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,daka:{}",this.getClass().getName(),daka.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));// if(false)// return R.error(511,"永远不会进入");// else if("用户".equals(role))// daka.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));//根据字段查询是否有相同数据Wrapper<DakaEntity>queryWrapper=newEntityWrapper<DakaEntity>().notIn("id",daka.getId()).andNew().eq("yonghu_id",daka.getYonghuId()).eq("insert_time",newSimpleDateFormat("yyyy-MM-dd").format(daka.getInsertTime()));logger.info("sql语句:"+queryWrapper.getSqlSegment());DakaEntitydakaEntity=dakaService.selectOne(queryWrapper);if(dakaEntity==null){dakaService.updateById(daka);//根据id更新returnR.ok();}else{returnR.error(511,"表中有相同数据");}}

5.1.4基础数据管理
通过设计的基础数据管理功能模块,管理用户可以管理相关的物资类型信息记录,比如进行查看物资类型的详细信息,修改物资类型的名称信息,删除已经失效的物资类型信息记录等操作,物资类型管理界面设计如图5-4所示。

图5-4物资类型管理界面
本功能模块的核心代码如下:

/** * 基础数据后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyDictionaryEntitydictionary,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));// if(false)// return R.error(511,"永远不会进入");//根据字段查询是否有相同数据Wrapper<DictionaryEntity>queryWrapper=newEntityWrapper<DictionaryEntity>().notIn("id",dictionary.getId()).eq("dic_code",dictionary.getDicCode()).eq("index_name",dictionary.getIndexName());if(dictionary.getDicCode().contains("_erji_types")){queryWrapper.eq("super_id",dictionary.getSuperId());}logger.info("sql语句:"+queryWrapper.getSqlSegment());DictionaryEntitydictionaryEntity=dictionaryService.selectOne(queryWrapper);if(dictionaryEntity==null){dictionaryService.updateById(dictionary);//根据id更新//如果字典表修改数据的话,把数据再重新查出,放入监听器中List<DictionaryEntity>dictionaryEntities=dictionaryService.selectList(newEntityWrapper<DictionaryEntity>());ServletContextservletContext=request.getServletContext();Map<String,Map<Integer,String>>map=newHashMap<>();for(DictionaryEntityd:dictionaryEntities){Map<Integer,String>m=map.get(d.getDicCode());if(m==null||m.isEmpty()){m=newHashMap<>();}m.put(d.getCodeIndex(),d.getIndexName());map.put(d.getDicCode(),m);}servletContext.setAttribute("dictionaryMap",map);returnR.ok();}else{returnR.error(511,"表中有相同数据");}}

5.1.5物资管理
通过设计的物资管理功能模块,管理用户可以管理相关的物资信息记录,比如进行查看物资的详细信息,修改物资的库存信息,删除已经失效的物资信息记录等操作,物资管理界面设计如图5-5所示。

图5-5物资管理界面
本功能模块的核心代码如下:

/** * 物资后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyWuziEntitywuzi,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,wuzi:{}",this.getClass().getName(),wuzi.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));// if(false)// return R.error(511,"永远不会进入");//根据字段查询是否有相同数据Wrapper<WuziEntity>queryWrapper=newEntityWrapper<WuziEntity>().notIn("id",wuzi.getId()).andNew().eq("wuzi_name",wuzi.getWuziName()).eq("wuzi_types",wuzi.getWuziTypes()).eq("wuzi_kucun_number",wuzi.getWuziKucunNumber()).eq("wuzi_danwei",wuzi.getWuziDanwei()).eq("wuzi_delete",wuzi.getWuziDelete());logger.info("sql语句:"+queryWrapper.getSqlSegment());WuziEntitywuziEntity=wuziService.selectOne(queryWrapper);if("".equals(wuzi.getWuziPhoto())||"null".equals(wuzi.getWuziPhoto())){wuzi.setWuziPhoto(null);}if(wuziEntity==null){wuziService.updateById(wuzi);//根据id更新returnR.ok();}else{returnR.error(511,"表中有相同数据");}}

5.1.6物资申请管理
通过设计的物资申请管理功能模块,管理用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,修改物资的申请时间信息,删除已经失效的物资申请信息记录等操作,物资申请管理界面设计如图5-6所示。

图5-6物资申请管理界面
本功能模块的核心代码如下:

/** * 物资申请后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyWuzishenqingEntitywuzishenqing,HttpServletRequestrequest){logger.debug("save方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));if(false)returnR.error(511,"永远不会进入");elseif("用户".equals(role))wuzishenqing.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));wuzishenqing.setInsertTime(newDate());wuzishenqing.setWuzishenqingYesnoTypes(1);wuzishenqing.setCreateTime(newDate());wuzishenqingService.insert(wuzishenqing);returnR.ok();}/** * 物资申请后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyWuzishenqingEntitywuzishenqing,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());wuzishenqingService.updateById(wuzishenqing);//根据id更新returnR.ok();}

5.1.7物资运输管理
通过设计的物资运输管理功能模块,管理用户可以管理相关的物资运输信息记录,比如进行查看物资运输的详细信息,修改物资运输的当前状态信息,删除已经失效的物资运输信息记录等操作,物资运输管理界面设计如图5-7所示。

图5-7物资运输管理界面
本功能模块的核心代码如下:

/** * 物资运输后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyWuziyunshuEntitywuziyunshu,HttpServletRequestrequest){logger.debug("save方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));if(false)returnR.error(511,"永远不会进入");wuziyunshu.setUpdateTime(newDate());wuziyunshu.setInsertTime(newDate());wuziyunshu.setCreateTime(newDate());wuziyunshuService.insert(wuziyunshu);returnR.ok();}/** * 物资运输后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyWuziyunshuEntitywuziyunshu,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());wuziyunshu.setUpdateTime(newDate());wuziyunshuService.updateById(wuziyunshu);//根据id更新returnR.ok();}

5.1.8用户管理
通过设计的用户管理功能模块,管理用户可以管理相关的用户信息资料,比如进行查看用户的详细资料,修改用户的联系方式,删除已经注销的用户信息记录等操作,用户管理界面设计如图5-8所示。

图5-8用户管理界面
本功能模块的核心代码如下:

/** * 用户后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));// if(false)// return R.error(511,"永远不会进入");//根据字段查询是否有相同数据Wrapper<YonghuEntity>queryWrapper=newEntityWrapper<YonghuEntity>().notIn("id",yonghu.getId()).andNew().eq("username",yonghu.getUsername()).or().eq("yonghu_phone",yonghu.getYonghuPhone()).or().eq("yonghu_id_number",yonghu.getYonghuIdNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());YonghuEntityyonghuEntity=yonghuService.selectOne(queryWrapper);if("".equals(yonghu.getYonghuPhoto())||"null".equals(yonghu.getYonghuPhoto())){yonghu.setYonghuPhoto(null);}if(yonghuEntity==null){yonghuService.updateById(yonghu);//根据id更新returnR.ok();}else{returnR.error(511,"账户或者用户手机号或者用户身份证号已经被使用");}}

5.1.9部门管理
通过设计的部门管理功能模块,管理用户可以管理相关的部门信息记录,比如进行查看部门的详细信息,修改部门的职责信息,删除已经失效的部门信息记录等操作,部门管理界面设计如图5-9所示。

图5-9部门管理界面
本功能模块的核心代码如下:

/** * 部门后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyBumenEntitybumen,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,bumen:{}",this.getClass().getName(),bumen.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));// if(false)// return R.error(511,"永远不会进入");//根据字段查询是否有相同数据Wrapper<BumenEntity>queryWrapper=newEntityWrapper<BumenEntity>().notIn("id",bumen.getId()).andNew().eq("bumen_name",bumen.getBumenName()).eq("bumen_zhize",bumen.getBumenZhize()).eq("bumen_number",bumen.getBumenNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());BumenEntitybumenEntity=bumenService.selectOne(queryWrapper);if(bumenEntity==null){bumenService.updateById(bumen);//根据id更新returnR.ok();}else{returnR.error(511,"表中有相同数据");}}

5.2用户功能设计
5.2.1用户首页
通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图5-10所示。

图5-10用户首页界面
本功能模块的核心代码如下:

/** * 首页后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));if(false)returnR.error(511,"永远不会进入");Wrapper<YonghuEntity>queryWrapper=newEntityWrapper<YonghuEntity>().eq("username",yonghu.getUsername()).or().eq("yonghu_phone",yonghu.getYonghuPhone()).or().eq("yonghu_id_number",yonghu.getYonghuIdNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());YonghuEntityyonghuEntity=yonghuService.selectOne(queryWrapper);if(yonghuEntity==null){yonghu.setCreateTime(newDate());yonghu.setPassword("123456");yonghuService.insert(yonghu);returnR.ok();}else{returnR.error(511,"账户或者用户手机号或者用户身份证号已经被使用");}}

5.2.2个人中心
通过设计的个人中心管理功能模块,用户可以选择查看个人资料信息,选择更新个人相关的资料信息记录;也可以选择修改账号密码,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-11所示,个人信息界面设计如图5-12所示。

图5-11修改密码界面

图5-12个人信息界面
本功能模块的核心代码如下:

//查询是否重复//账户List<YonghuEntity>yonghuEntities_username=yonghuService.selectList(newEntityWrapper<YonghuEntity>().in("username",seachFields.get("username")));if(yonghuEntities_username.size()>0){ArrayList<String>repeatFields=newArrayList<>();for(YonghuEntitys:yonghuEntities_username){repeatFields.add(s.getUsername());}returnR.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());}//用户手机号List<YonghuEntity>yonghuEntities_yonghuPhone=yonghuService.selectList(newEntityWrapper<YonghuEntity>().in("yonghu_phone",seachFields.get("yonghuPhone")));if(yonghuEntities_yonghuPhone.size()>0){ArrayList<String>repeatFields=newArrayList<>();for(YonghuEntitys:yonghuEntities_yonghuPhone){repeatFields.add(s.getYonghuPhone());}returnR.error(511,"数据库的该表中的 [用户手机号] 字段已经存在 存在数据为:"+repeatFields.toString());}//用户身份证号List<YonghuEntity>yonghuEntities_yonghuIdNumber=yonghuService.selectList(newEntityWrapper<YonghuEntity>().in("yonghu_id_number",seachFields.get("yonghuIdNumber")));if(yonghuEntities_yonghuIdNumber.size()>0){ArrayList<String>repeatFields=newArrayList<>();for(YonghuEntitys:yonghuEntities_yonghuIdNumber){repeatFields.add(s.getYonghuIdNumber());}returnR.error(511,"数据库的该表中的 [用户身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());}yonghuService.insertBatch(yonghuList);returnR.ok();}

5.2.3健康打卡管理
通过设计的健康打卡管理功能模块,用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图5-13所示。

图5-13健康打卡管理界面
本功能模块的核心代码如下:

/** * 健康打卡后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);DakaEntitydaka=dakaService.selectById(id);if(daka!=null){//entity转viewDakaViewview=newDakaView();BeanUtils.copyProperties(daka,view);//把实体数据重构到view中//级联表YonghuEntityyonghu=yonghuService.selectById(daka.getYonghuId());if(yonghu!=null){BeanUtils.copyProperties(yonghu,view,newString[]{"id","createTime","insertTime","updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view,request);returnR.ok().put("data",view);}else{returnR.error(511,"查不到数据");}}

5.2.4物资管理
通过设计的物资管理功能模块,管理用户可以查看相关的物资信息记录,可以查到物资名称、物资图片、物资类型、物资库存等详细信息,物资管理界面设计如图5-14所示。

图5-14物资管理界面
本功能模块的核心代码如下:

/** * 物资后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);WuziEntitywuzi=wuziService.selectById(id);if(wuzi!=null){//entity转viewWuziViewview=newWuziView();BeanUtils.copyProperties(wuzi,view);//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view,request);returnR.ok().put("data",view);}else{returnR.error(511,"查不到数据");}}

5.2.5物资申请管理
通过设计的物资申请管理功能模块,用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,新增相关的物资申请信息记录,物资申请管理界面设计如图5-15所示。

图5-15物资申请管理界面
本功能模块的核心代码如下:

/** * 物资申请后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);WuzishenqingEntitywuzishenqing=wuzishenqingService.selectById(id);if(wuzishenqing!=null){//entity转viewWuzishenqingViewview=newWuzishenqingView();BeanUtils.copyProperties(wuzishenqing,view);//把实体数据重构到view中//级联表WuziEntitywuzi=wuziService.selectById(wuzishenqing.getWuziId());if(wuzi!=null){BeanUtils.copyProperties(wuzi,view,newString[]{"id","createTime","insertTime","updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段view.setWuziId(wuzi.getId());}//级联表YonghuEntityyonghu=yonghuService.selectById(wuzishenqing.getYonghuId());if(yonghu!=null){BeanUtils.copyProperties(yonghu,view,newString[]{"id","createTime","insertTime","updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view,request);returnR.ok().put("data",view);}else{returnR.error(511,"查不到数据");}}

5.2.6物资运输管理
通过设计的物资运输管理功能模块,用户可以查看相关的物资运输信息记录,比如查到物资名称、物资图片、单位、运输数量、当前状态等详细信息,物资运输管理界面设计如图5-16所示。

图5-16物资运输管理界面
本功能模块的核心代码如下:

/** * 物资运输后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);WuziyunshuEntitywuziyunshu=wuziyunshuService.selectById(id);if(wuziyunshu!=null){//entity转viewWuziyunshuViewview=newWuziyunshuView();BeanUtils.copyProperties(wuziyunshu,view);//把实体数据重构到view中//级联表WuziEntitywuzi=wuziService.selectById(wuziyunshu.getWuziId());if(wuzi!=null){BeanUtils.copyProperties(wuzi,view,newString[]{"id","createTime","insertTime","updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段view.setWuziId(wuzi.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view,request);returnR.ok().put("data",view);}else{returnR.error(511,"查不到数据");}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 4:15:06

计算统计指标

SHADE和SaDE跑CEC2017测试集对比图&#xff0c;并分别连续运行30次并且输出最优值&#xff0c;最差值&#xff0c;平均值&#xff0c;标准差 基于成功历史的参数自适应差分进化算法(SHADE)是经典的差分进化变体&#xff0c;该论文发表于2013年&#xff0c;性能非常有参考价值&a…

作者头像 李华
网站建设 2026/3/28 6:05:40

自编基于层结构(Layer)的添加自注意力机制

自编基于层结构&#xff08;Layer&#xff09;的添加自注意力机制直接开撕&#xff01;传统神经网络层结构那套全连接激活函数的组合拳早就看腻了&#xff0c;今天咱们整点刺激的——给网络层装个自注意力插件。这玩意儿能让网络自己决定哪些信息重要&#xff0c;比无脑全连接不…

作者头像 李华
网站建设 2026/3/19 12:50:10

【大数据高并发核心场景实战】 数据持久化层 - 查询分离

1. 业务场景适用场景&#xff1a;数据查询缓慢&#xff08;数据量大导致、数据聚合时调用外部系统过多导致等&#xff09;写数据效率尚可所有数据都可能修改&#xff08;若存在冷数据&#xff0c;可使用上一章的冷热分离方案&#xff09;基本思路&#xff1a;将更新的数据放在主…

作者头像 李华
网站建设 2026/3/19 19:04:11

copyparty实战指南:零基础搭建个人文件共享服务器的完整教程

copyparty实战指南&#xff1a;零基础搭建个人文件共享服务器的完整教程 【免费下载链接】copyparty Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails all in one file, no deps 项目地址: https:…

作者头像 李华
网站建设 2026/3/26 5:10:10

Java+Playwright自动化测试-30- 操作单选和多选按钮 - 番外篇(详细教程)

1.简介前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo&#xff0c;给小伙伴或童鞋们演示了一下如何使用playwright来处理单选按钮和多选按钮进行自动化测试&#xff0c;想必大家都已经掌握的八九不离十了吧。这一篇其实也很简单&#xff0c;主要是分两部分内容来讲解和…

作者头像 李华
网站建设 2026/3/30 12:51:11

为什么说运维工程师做不长久,做两年就赶快转网络安全或者研发?

很多从事IT网络运维工作的年轻小伙伴都会有个疑问&#xff0c;自己做的工作很杂似乎很基础&#xff0c;而且重复很多年&#xff0c;究竟有没前途。 作为过来人告诉一个总结&#xff1a;前途大小&#xff0c;工资多少跟你的岗位和职称资质没有多少关系&#xff0c;跟你的经验技…

作者头像 李华