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

基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统

基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统

🍅 作者主页 央顺技术团队
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《1000套》

文章目录

  • 基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统
  • 前言介绍:
  • 系统实现功能:
  • 系统设计:
    • 业务流程分析:
    • 图书信息实体图
    • 系统流程图:
  • 功能截图:
    • 登录注册模块
    • 前台首页
    • 图书信息
    • 图书详情
    • 图书资讯
    • 个人中心
    • 购物车管理
    • 下单模块
    • 后台管理模块
    • 卖家管理
    • 图书类型管理
    • 图书信息管理
    • 图书资讯管理
    • 图书借阅管理
    • 图书归还管理
    • 系统轮播图
    • 订单信息管理
  • 主要代码:
    • yml配置:
    • 文件上传:
    • 图书借阅:
  • 论文参考:

前言介绍:

在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管理的兴起也同时飞速发展着。为了适应现代人类强烈的时间观念,对于网上图书商城传统管理方式的缺点,互联网的出现打破了这种局限性,给了广大用户更大的选择空间,促进了网上图书商城管理,有效的避免了网上图书商城管理缭乱的局面,方便用户。本网站中,管理员可以以最方便的形式,在最短的时间内查找最多的网上图书信息。因此,系统无疑给人们的生活带来了极大的方便,网络的应用让时间和距离不再是局限。
通过网上图书商城的研究可以更好地理解系统开发的意义,而且也有利于发展更多的智能系统,解决了人才的供给和需求的平衡问题,网上图书商城的开发建设,由于其开发周期短,维护方便,所以它可以适应网上图书商城体系基本要求。

系统实现功能:

本次设计任务是要设计一个网上图书商城,通过这个系统能够满足网上图书商城的管理功能。系统的主要功能包括首页、个人中心、用户管理、卖家管理、图书类型管理、图书信息管理、图书借阅管理、订单管理、系统管理等功能。
管理员可以根据系统给定的账号进行登录,登录后可以进入网上图书商城,对网上图书商城所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看网上图书商城信息及对个人信息进行修改等功能。

系统设计:

业务流程分析:

在系统流程分析当中调查分析它是比较重要的环节,因为在这个系统当中它都涉及到每个环节的业务流程,所以从婚纱摄影网的设计的整体设计上要保证各个信息的正确输入和输出以及对数据储存的完整,并结合实际的操作步骤来绘制出具体的流程图。具体流程图如下图所示:
在这里插入图片描述

图书信息实体图

在这里插入图片描述

系统流程图:

下图是用户进入这个网上图书商城后,基本的操作流程。一进入首页便可以进行各种图书商城信息的浏览,包括图书信息等,用户可以根据自身的需求来找适合自己的图书,如果有合适的图书时,就能进行相应的操作,但前提是必须是登录的用户,不然系统会提示需重新登录才可操作。用户也可通过公告的消息,了解实时的情况,这样有助于结合自身,更好的适应网上图书商城的管理需求,最后用户可以根据自己获得信息的满意程度来进行操作
在这里插入图片描述

功能截图:

登录注册模块

用户注册、用户登录,用户通过输入用户名、密码、姓名、联系电话、邮箱等信息进行注册、登录
在这里插入图片描述
在这里插入图片描述

前台首页

在系统首页可以查看首页、图书信息、图书资讯、个人中心、购物车等内容进行详细操作
在这里插入图片描述

图书信息

在图书信息页面可以查看图书名称、价格、单次购买、库存、店铺名称、图书编号、图书类型、图片、作者、出版社、账号、买家账号、手机、图示介绍等详细内容
在这里插入图片描述

图书详情

并进行添加到购物车,立即购买,评论,等收藏操作
在这里插入图片描述
在这里插入图片描述

图书资讯

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

个人中心

个人中心,在个人中心页面通过填写用户名、密码、姓名、性别、上传图片、邮箱、手机、余额等信息进行更新信息,根据需要对我的订单,我的地址,我的收藏进行详细操作
在这里插入图片描述
在这里插入图片描述

购物车管理

购物车页面可以查看购买商品、价格、数量、总价等信息,还可以进行点击购买和删除操作
在这里插入图片描述

下单模块

在这里插入图片描述

后台管理模块

用户管理:在用户管理页面可以对索引、用户名、姓名、性别、头像、邮箱、手机等信息进行详情,修改和删除等操作
在这里插入图片描述

卖家管理

在卖家管理页面可以对索引、账号、卖家姓名、性别、头像、身份证、手机、邮箱、审核回复、审核状态等内容进行详情,审核,修改和删除等操作
在这里插入图片描述

图书类型管理

在图书类型管理页面可以查看索引、图书类型等内容,并进行新增、修改和删除操作
在这里插入图片描述

图书信息管理

在图书信息管理页面可以查看索引、店铺名称、图书编号、图书名称、图书类型、图片、作者、出版社、账号、买家姓名、手机、价格、单限、库存等内容,
在这里插入图片描述
并进行详情,修改,查看评论和删除操作
在这里插入图片描述

图书资讯管理

在图书资讯可以对索引、标题、图片等内容进行查看,
在这里插入图片描述
还可以对 详情,修改和删除等操作
在这里插入图片描述

图书借阅管理

在这里插入图片描述

图书归还管理

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

系统轮播图

还可以对轮播图管理进行相应的操作
在这里插入图片描述

订单信息管理

在已支付订单页面可以对索引、订单编号、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址、电话、收货人、商户名称、下单时间等信息进行详情、发货和删除操作,还可以对已退款订单,已完成订单,已发货订单,未支付订单,已取消订单等进行相应的操作
在这里插入图片描述

主要代码:

yml配置:

# Tomcat
server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springbootq3ulrspring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3307/springbootq3ulr?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8username: rootpassword: crit@123456#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootq3ulr
#        username: sa
#        password: 123456servlet:multipart:max-file-size: 300MBmax-request-size: 300MBresources:static-locations: classpath:static/,file:static/#mybatis
mybatis-plus:mapper-locations: classpath*:mapper/*.xml#实体扫描,多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: 1#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"field-strategy: 1#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)jdbc-type-for-null: 'null'

文件上传:

 
/*** 上传文件映射表*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{@Autowiredprivate ConfigService configService;/*** 上传文件*/@RequestMapping("/upload")public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {if (file.isEmpty()) {throw new EIException("上传文件不能为空");}String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);File path = new File(ResourceUtils.getURL("classpath:static").getPath());if(!path.exists()) {path = new File("");}File upload = new File(path.getAbsolutePath(),"/upload/");if(!upload.exists()) {upload.mkdirs();}String fileName = new Date().getTime()+"."+fileExt;File dest = new File(upload.getAbsolutePath()+"/"+fileName);file.transferTo(dest);/*** 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开* 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,* 并且项目路径不能存在中文、空格等特殊字符*/
//		FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/if(StringUtils.isNotBlank(type) && type.equals("1")) {ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));if(configEntity==null) {configEntity = new ConfigEntity();configEntity.setName("faceFile");configEntity.setValue(fileName);} else {configEntity.setValue(fileName);}configService.insertOrUpdate(configEntity);}return R.ok().put("file", fileName);}/*** 下载文件*/@IgnoreAuth@RequestMapping("/download")public ResponseEntity<byte[]> download(@RequestParam String fileName) {try {File path = new File(ResourceUtils.getURL("classpath:static").getPath());if(!path.exists()) {path = new File("");}File upload = new File(path.getAbsolutePath(),"/upload/");if(!upload.exists()) {upload.mkdirs();}File file = new File(upload.getAbsolutePath()+"/"+fileName);if(file.exists()){/*if(!fileService.canRead(file, SessionManager.getSessionUser())){getResponse().sendError(403);}*/HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    headers.setContentDispositionFormData("attachment", fileName);    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}} catch (IOException e) {e.printStackTrace();}return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);}}

图书借阅:

 
/*** 图书借阅* 后端接口* @lyy* @date 2022-03-25 17:43:28*/
@RestController
@RequestMapping("/tushujieyue")
public class TushujieyueController {@Autowiredprivate TushujieyueService tushujieyueService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,TushujieyueEntity tushujieyue,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("maijia")) {tushujieyue.setZhanghao((String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {tushujieyue.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<TushujieyueEntity> ew = new EntityWrapper<TushujieyueEntity>();PageUtils page = tushujieyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tushujieyue), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,TushujieyueEntity tushujieyue, HttpServletRequest request){EntityWrapper<TushujieyueEntity> ew = new EntityWrapper<TushujieyueEntity>();PageUtils page = tushujieyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tushujieyue), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( TushujieyueEntity tushujieyue){EntityWrapper<TushujieyueEntity> ew = new EntityWrapper<TushujieyueEntity>();ew.allEq(MPUtil.allEQMapPre( tushujieyue, "tushujieyue")); return R.ok().put("data", tushujieyueService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(TushujieyueEntity tushujieyue){EntityWrapper< TushujieyueEntity> ew = new EntityWrapper< TushujieyueEntity>();ew.allEq(MPUtil.allEQMapPre( tushujieyue, "tushujieyue")); TushujieyueView tushujieyueView =  tushujieyueService.selectView(ew);return R.ok("查询图书借阅成功").put("data", tushujieyueView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){TushujieyueEntity tushujieyue = tushujieyueService.selectById(id);return R.ok().put("data", tushujieyue);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){TushujieyueEntity tushujieyue = tushujieyueService.selectById(id);return R.ok().put("data", tushujieyue);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody TushujieyueEntity tushujieyue, HttpServletRequest request){tushujieyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(tushujieyue);tushujieyueService.insert(tushujieyue);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody TushujieyueEntity tushujieyue, HttpServletRequest request){tushujieyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(tushujieyue);tushujieyueService.insert(tushujieyue);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody TushujieyueEntity tushujieyue, HttpServletRequest request){//ValidatorUtils.validateEntity(tushujieyue);tushujieyueService.updateById(tushujieyue);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){tushujieyueService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<TushujieyueEntity> wrapper = new EntityWrapper<TushujieyueEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("maijia")) {wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = tushujieyueService.selectCount(wrapper);return R.ok().put("count", count);}}

论文参考:

在这里插入图片描述

获取源码
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《1000套》

相关文章:

基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统

基于JavaSpringBootvue实现图书借阅和销售商城一体化系统 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系…...

集成xxljob项目如何迁移到K8S

前言 大家好&#xff0c;今天我们将基于XXL-Job&#xff0c;探讨任务调度迁移到云端的相关话题。 XXL-Job是一款功能强大、易用可靠的国产分布式任务调度平台&#xff0c;是目前国内使用比较广泛的分布式任务调度平台之一。它的主要特点包括&#xff1a; 支持分布式、多线程…...

类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦

类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦 文章目录 类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦一、方案一&#xff08;优先尝试&#xff09;二、方案二&#xff08;优先尝试&#xff09;三、方案三这该是多么痛苦的一篇笔记啊&#xff01;&#xff0…...

【MQTT】使用MQTT在Spring Boot项目中实现异步消息通信

目录 使用MQTT在Spring Boot项目中实现异步消息通信步骤1&#xff1a;引入MQTT库依赖步骤2&#xff1a;配置MQTT连接信息步骤3&#xff1a;创建MQTT配置类步骤4&#xff1a;发送MQTT消息发布MQTT消息消费MQTT消息 总结 前置文章&#xff1a; &#xff08;一&#xff09;MQTT协议…...

Java 中泛型的基本使用

目录 一、泛型类的使用 二、泛型接口的使用 三、泛型方法的使用 相关测试 一、泛型类的使用 /* 泛型类&#xff0c;T 表示 Java 中的任意类型&#xff0c;也就是说构造方法中 data 属性可以传递任意类型的值*/ class ResultData<T>{Integer code;String msg;T data;p…...

Java初学者软件安装与idea快捷键

一.Java初学者软件安装 视频教程&#xff1a; 最通俗易懂的JDK、IDEA的安装使用权威指南_哔哩哔哩_bilibili 文档教程&#xff1a; Java 开发环境配置 | 菜鸟教程 (runoob.com) 二.java的快捷方式与插件 快捷键&#xff1a; 史上最全的IDEA快捷键总结_idea的快捷语法_扬帆…...

微信商家转账到零钱怎么开通?场景模板

商家转账到零钱是什么&#xff1f; 使用商家转账到零钱这个功能&#xff0c;可以让商户同时向多个用户的零钱转账。商户可以使用这个功能用于费用报销、员工福利发放、合作伙伴货款或分销返佣等场景&#xff0c;提高效率。 商家转账到零钱的使用场景有哪些&#xff1f; 商家…...

(菜鸟自学)搭建虚拟渗透实验室——安装Ubantu 8.10 靶机

安装Ubantu 8.10 靶机 新建虚拟机 选择Ubuntu系统 网络适配器模式选用桥接模式 镜像选用ubuntu8.10版本 点击“开启此虚拟机”以开始安装Ubuntu Linux系统 安装ubuntu 首先需要选择安装时的语言&#xff0c;这里选择“中文&#xff08;简体&#xff09;” 选择“安装…...

【JAVA】哪些集合类是线程安全的

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 Vector&#xff1a; HashTable&#xff1a; Collections.synchronizedList()、Collections.synchronizedSet()、Collections.syn…...

K8S 日志方案

一、统一日志管理的整体方案 通过应用和系统日志可以了解Kubernetes集群内所发生的事情&#xff0c;对于调试问题和监视集群活动来说日志非常有用。对于大部分的应用来说&#xff0c;都会具有某种日志机制。因此&#xff0c;大多数容器引擎同样被设计成支持某种日志机制。 对…...

GPT2 GPT3

what is prompt 综述1.Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(五星好评) 综述2. Paradigm Shift in Natural Language Processing(四星推荐) 综述3. Pre-Trained Models: Past, Present and Future Pro…...

2024年人工智能顶会/顶刊截稿时间汇总

人工智能顶会/顶刊汇总 &#xff0c;方便查阅&#xff0c;持续更新&#xff0c;若有错误烦请大家及时提出&#xff01; 一、CCF A类 简称 全称录用率频次内容官网截稿日期IJCAIInternational Joint Conference on Artificial Intelligence2020年12.55%&#xff0c;2021年13.9%…...

AI芯片:神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速

AI芯片&#xff1a; 神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速 神经网络研发加速器神经网络编译器各自实现的神经网络编译器 神经网络加速与压缩&#xff08;算法层面&#xff09;知识蒸馏低秩分解轻量化网络剪枝量化 通用芯片 CPU 加速x86…...

系列七、Spring Security中基于Jdbc的用户认证 授权

一、Spring Security中基于Jdbc的用户认证 & 授权 1.1、概述 前面的系列文章介绍了基于内存定义用户的方式&#xff0c;其实Spring Security中还提供了基于Jdbc的用户认证 & 授权&#xff0c;再说基于Jdbc的用户认证 & 授权之前&#xff0c;不得不说一下Spring Se…...

网络安全(网络安全)—2024自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…...

python爬虫小练习——爬取豆瓣电影top250

爬取豆瓣电影top250 需求分析 将爬取的数据导入到表格中&#xff0c;方便人为查看。 实现方法 三大功能 1&#xff0c;下载所有网页内容。 2&#xff0c;处理网页中的内容提取自己想要的数据 3&#xff0c;导入到表格中 分析网站结构需要提取的内容 代码 import requests…...

Vulnhub靶机:driftingblues 2

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;driftingblues2&#xff08;10.0.2.18&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entr…...

CentOS 7 权限管理实战指南:用户组管理相关命令详解

前言 深入了解 CentOS 7 用户组管理的命令&#xff0c;掌握关键的用户组操作技巧。从创建和删除用户组、修改组属性&#xff0c;到设置组密码和管理组成员&#xff0c;这篇文章详细介绍了 CentOS 7 系统下常用的用户组管理命令&#xff0c;为读者小伙伴提供了实用而全面的指南…...

Python操作MySQL入门教程,使用pymysql操作MySQL,有录播直播私教课

创建数据库 create database gx character set utf8mb4;连接数据库 #!/usr/bin/python3import mysql as pymysql# 打开数据库连接 db pymysql.connect(hostlocalhost,port3306,userroot,passwordzhangdapeng520,databasegx)# 使用 cursor() 方法创建一个游标对象 cursor cur…...

面试 React 框架八股文十问十答第七期

面试 React 框架八股文十问十答第七期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;React 废弃了哪些生命…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...