基于Java+SpringBoot+Vue企业OA管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】
🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》
技术选型
springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8
数据库表结构
13张
开发工具
idea、navicat
⭐功能
【角色】
管理员、用户
【功能模块】
- 登录
- 个人中心
- 用户管理
- 公告信息管理
- 客户关系管理
- 通讯录管理
- 日程安排管理
- 车辆信息管理
- 文件信息管理
- 工作日志管理
- 上班考勤管理
- 工资信息管理
🏆项目演示截图
1、用户信息管理
2、公告信息管理
3、客户关系管理
4、通讯录管理
5、客户关系添加
6、通讯录添加
7、日程安排添加
数据库文件设计
CREATE TABLE `cheliangxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`cheliangmingcheng` varchar(200) NOT NULL COMMENT '车辆名称',`chepaihao` varchar(200) NOT NULL COMMENT '车牌号',`cheliangleixing` varchar(200) DEFAULT NULL COMMENT '车辆类型',`cheliangyanse` varchar(200) DEFAULT NULL COMMENT '车辆颜色',`tingfangweizhi` varchar(200) DEFAULT NULL COMMENT '停放位置',`cheliangxiangqing` longtext COMMENT '车辆详情',`shiyongzhuangkuang` varchar(200) DEFAULT NULL COMMENT '使用状况',`thumbsupnum` int(11) DEFAULT '0' COMMENT '赞',`crazilynum` int(11) DEFAULT '0' COMMENT '踩',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8 COMMENT='车辆信息';CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='配置文件';CREATE TABLE `gonggaoxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`biaoti` varchar(200) NOT NULL COMMENT '标题',`leixing` varchar(200) NOT NULL COMMENT '类型',`fabushijian` datetime DEFAULT NULL COMMENT '发布时间',`gonggaoneirong` longtext COMMENT '公告内容',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COMMENT='公告信息';CREATE TABLE `gongzuorizhi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`biaoti` varchar(200) NOT NULL COMMENT '标题',`dengjishijian` datetime DEFAULT NULL COMMENT '登记时间',`gongzuoneirong` longtext COMMENT '工作内容',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8 COMMENT='工作日志';CREATE TABLE `kehuguanxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`kehuxingming` varchar(200) NOT NULL COMMENT '客户姓名',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`nianling` varchar(200) DEFAULT NULL COMMENT '年龄',`shengri` date DEFAULT NULL COMMENT '生日',`gongsimingcheng` varchar(200) NOT NULL COMMENT '公司名称',`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',`youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',`hezuoneirong` longtext COMMENT '合作内容',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='客户关系';CREATE TABLE `richenganpai` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`bianhao` varchar(200) DEFAULT NULL COMMENT '编号',`mingcheng` varchar(200) NOT NULL COMMENT '名称',`leixing` varchar(200) DEFAULT NULL COMMENT '类型',`riqi` date DEFAULT NULL COMMENT '日期',`shijian` varchar(200) DEFAULT NULL COMMENT '时间',`richengneirong` longtext COMMENT '日程内容',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',PRIMARY KEY (`id`),UNIQUE KEY `bianhao` (`bianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='日程安排';CREATE TABLE `shangbankaoqin` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`bianhao` varchar(200) DEFAULT NULL COMMENT '编号',`mingcheng` varchar(200) NOT NULL COMMENT '名称',`riqi` date DEFAULT NULL COMMENT '日期',`yonghuming` varchar(200) NOT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`zaotuicishu` varchar(200) NOT NULL COMMENT '早退次数',`chidaocishu` varchar(200) NOT NULL COMMENT '迟到次数',`qingjiacishu` varchar(200) NOT NULL COMMENT '请假次数',`kuanggongcishu` varchar(200) NOT NULL COMMENT '旷工次数',`userid` bigint(20) DEFAULT NULL COMMENT '用户id',PRIMARY KEY (`id`),UNIQUE KEY `bianhao` (`bianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=97 DEFAULT CHARSET=utf8 COMMENT='上班考勤';CREATE TABLE `token` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`userid` bigint(20) NOT NULL COMMENT '用户id',`username` varchar(100) NOT NULL COMMENT '用户名',`tablename` varchar(100) DEFAULT NULL COMMENT '表名',`role` varchar(100) DEFAULT NULL COMMENT '角色',`token` varchar(200) NOT NULL COMMENT '密码',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='token表';CREATE TABLE `tongxunlu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`xingming` varchar(200) NOT NULL COMMENT '姓名',`nianling` varchar(200) DEFAULT NULL COMMENT '年龄',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`touxiang` varchar(200) DEFAULT NULL COMMENT '头像',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`shoujihao` varchar(200) DEFAULT NULL COMMENT '手机号',`dizhi` varchar(200) DEFAULT NULL COMMENT '地址',`youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',`beizhu` longtext COMMENT '备注',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='通讯录';CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(100) NOT NULL COMMENT '用户名',`password` varchar(100) NOT NULL COMMENT '密码',`role` varchar(100) DEFAULT '管理员' COMMENT '角色',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';CREATE TABLE `wenjianxinxi` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`biaoti` varchar(200) NOT NULL COMMENT '标题',`fujian` varchar(200) DEFAULT NULL COMMENT '附件',`wenjianneirong` longtext COMMENT '文件内容',`fabushijian` datetime DEFAULT NULL COMMENT '发布时间',`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',`shhf` longtext COMMENT '审核回复',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8 COMMENT='文件信息';CREATE TABLE `yonghu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`yonghuming` varchar(200) NOT NULL COMMENT '用户名',`mima` varchar(200) NOT NULL COMMENT '密码',`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`touxiang` varchar(200) DEFAULT NULL COMMENT '头像',`bumen` varchar(200) DEFAULT NULL COMMENT '部门',`zhiwei` varchar(200) DEFAULT NULL COMMENT '职位',`youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱',`shouji` varchar(200) DEFAULT NULL COMMENT '手机',PRIMARY KEY (`id`),UNIQUE KEY `yonghuming` (`yonghuming`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='用户';
核心代码
package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.GongzixinxiEntity;
import com.entity.view.GongzixinxiView;import com.service.GongzixinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 工资信息* 后端接口* @author 计算机编程-吉哥*/
@RestController
@RequestMapping("/gongzixinxi")
public class GongzixinxiController {@Autowiredprivate GongzixinxiService gongzixinxiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,GongzixinxiEntity gongzixinxi,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {gongzixinxi.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<GongzixinxiEntity> ew = new EntityWrapper<GongzixinxiEntity>();PageUtils page = gongzixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongzixinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,GongzixinxiEntity gongzixinxi, HttpServletRequest request){EntityWrapper<GongzixinxiEntity> ew = new EntityWrapper<GongzixinxiEntity>();PageUtils page = gongzixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongzixinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( GongzixinxiEntity gongzixinxi){EntityWrapper<GongzixinxiEntity> ew = new EntityWrapper<GongzixinxiEntity>();ew.allEq(MPUtil.allEQMapPre( gongzixinxi, "gongzixinxi")); return R.ok().put("data", gongzixinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(GongzixinxiEntity gongzixinxi){EntityWrapper< GongzixinxiEntity> ew = new EntityWrapper< GongzixinxiEntity>();ew.allEq(MPUtil.allEQMapPre( gongzixinxi, "gongzixinxi")); GongzixinxiView gongzixinxiView = gongzixinxiService.selectView(ew);return R.ok("查询工资信息成功").put("data", gongzixinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){GongzixinxiEntity gongzixinxi = gongzixinxiService.selectById(id);return R.ok().put("data", gongzixinxi);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){GongzixinxiEntity gongzixinxi = gongzixinxiService.selectById(id);return R.ok().put("data", gongzixinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GongzixinxiEntity gongzixinxi, HttpServletRequest request){gongzixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(gongzixinxi);gongzixinxiService.insert(gongzixinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody GongzixinxiEntity gongzixinxi, HttpServletRequest request){gongzixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(gongzixinxi);gongzixinxiService.insert(gongzixinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody GongzixinxiEntity gongzixinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(gongzixinxi);gongzixinxiService.updateById(gongzixinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){gongzixinxiService.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<GongzixinxiEntity> wrapper = new EntityWrapper<GongzixinxiEntity>();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("yonghu")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = gongzixinxiService.selectCount(wrapper);return R.ok().put("count", count);}}
参考文档
更多项目推荐:计算机毕业设计项目
如果大家有任何疑虑,请在下方咨询或评论
相关文章:

基于Java+SpringBoot+Vue企业OA管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

Java架构师系统架构设计性能评估
目录 1 导论2 架构评估基础系统性能衡量的基本指标2.1 系统性能的指标2.2 数据库指标2.3 并发用户数2.4 网络延迟2.4 系统吞吐量2.5 资源性能指标3 架构评估基础服务端性能测试3.1基准测试3.2 负载测试3.3 压力测试3.4 疲劳强度测试3.5 容量测试1 导论 本章的主要内容是掌握架构…...
Android可滑动的分时图以及常用动画
先看一下效果: 自定义View 其中顶部是模仿的股票数据分时图,以前也写过详细的文章传送门,只不过不支持左右滑动,这款是在那个基础上的修改 在说一下分时图的思路吧: 可以看作是一条条相连的直线首尾相接,…...
软考系统架构师常考知识点整理(含案例分析、论文历年题目总结)
系统架构师常考知识点总结 计算机组成原理 1、同步/异步区分 CPU访问内存通常是同步方式 CPU与I/O接口交换信息通常是同步方式 CPU与PCI总线交换信息通常是同步方式 I/O接口与打印机交换信息则通常采用基于缓存池的异步方式, 2、双工通信方式 对端到端通信总线的信号传…...

Netty通信在中间件组件中的广泛使用-Dubbo3举例
Netty是一个高性能异步IO通信框架,封装了NIO,对各种bug做了很好的优化解决。所以很多中间件底层的通信都会使用Netty,比如说:Dubbo3,rocketmq,ElasticSearch等。 比方说,我们使用dubbo作为rpc跨…...

基于Java的在线拍卖系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技…...
Maven Pom
目录 Pom 父(Super)POM POM 标签大全详解 POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖…...
【运维日常】mongodb 集群生产实践
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...

【MATLAB源码-第45期】基于matlab的16APSK调制解调仿真,使用卷积编码软判决。
操作环境: MATLAB 2022a 1、算法描述 1. 16APSK调制解调 16APSK (16-ary Amplitude Phase Shift Keying) 是一种相位调制技术,其基本思想是在恒定幅度的条件下,改变信号的相位,从而传送信息。 - 调制:在16APSK中&am…...

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 八)
其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理,ArkTS还提供了Watch和$$来为开发者提供更多功能: Watch用于监听状态变量的变化。$$运算符:给内置组件提供TS变量的引用,使得TS变量和内置组件的内部状态保持同步…...
SQL按照id集合顺序返回
SQL按照id集合顺序返回 一、需求二、SQL三、MyBatis编写四、FIELD函数五、环境 一、需求 sql这样的 SELECT id, name FROM is_parent_viewshop WHERE id IN (2350, 2396, 3768, 3718, 3692) 按照id顺序返回,sql如何写 二、SQL SELECT id, name FROM is_parent_vi…...

04训练——基于YOLO V8的自定义数据集训练——在windows环境下使用pycharm做训练-1总体步骤
在上文中,笔者介绍了使用google公司提供的免费GPU资源colab来对大量的自定义数据集进行模型训练。该方法虽然简单好用,但是存在以下几方面的短板问题: 一是需要通过虚拟服务器做为跳板机来访问,总体操作起来非常繁杂。 二是需要将大量的数据上传缓慢,管理和使用非常不友…...

iview表格 异步修改列数据卡顿 滚动条失效
使用表格row-key属性 将row-key属性设置为true <Table ref"table" border :row-key"true" :columns"tableColumns" :loading"loading":data"tableData"></Table>...
【Linux】常驻内核和虚拟内存的区别
常驻内存和虚拟内存是计算机内存管理的两个概念。 常驻内存指的是应用程序在运行时,所占用的内存空间不会随着应用程序的启动和关闭而有所变化,这种内存是常驻在计算机的物理内存中的。即使我们关闭了电脑,这些程序也会保持在内存中…...
Qt 串口接收包含汉字的数据,汉字乱码
通过串口显示打印的调试信息时,接受的中文无法识别,全部乱码,解决办法: QByteArray array m_serial->readAll(); QString array QString::fromLocal8Bit(arr)...

设计模式 - 结构型模式考点篇:适配器模式(类适配器、对象适配器、接口适配器)
目录 一、适配器模式 一句话概括结构式模式 1.1、适配器模式概述 1.2、案例 1.2.1、类适配器模式实现案例 1.2.2、对象适配器 1.2.3、接口适配器 1.3、优缺点(对象适配器模式) 1.4、应用场景 一、适配器模式 一句话概括结构式模式 教你将类和对…...

android Google官网 :支持不同的语言和文化 rtl / ltr : 本地化适配:RTL(right-to-left) 适配
参考 google官网: 支持不同的语言和文化 应用包含可能专门针对特定文化而设计的资源。例如,应用可以包含针对特定文化的字符串,这些字符串将转换为当前语言区域的语言。 将具有文化特异性的资源与应用的其他资源分开是一种很好的做法。And…...

Visual Studio Code配置C/C++开发环境
C/C开发中的IDE非常多,网上有推荐安装Visual Studio 2019/2020/2022。但是登录官方网址下载,此软件体积非常大(8G以上),且企业版、专业版会收费。 因此,我们推荐大家可以尝试通过Visual Studio Code来配置C/C开发环境 环境准备 Mi…...

室内渲染的艺术:创造理想空间的视觉魔法!
在繁忙的生活中,我们常常渴望拥有一个属于自己的安静空间。这个空间可以是一间温馨的卧室,也可以是一间舒适的客厅,甚至可以是一个小小的书房。而这个空间的营造,离不开室内渲染。 室内渲染是一种艺术,它用色彩、光线…...
php发送get、post请求的6种方法简明总结?
这篇文章主要介绍php发送get、post请求的6种方法简明总结,分别为使用file_get_contents 、fopen、fsockopen、curl来发送GET和POST请求,需要的朋友可以参考下 方法1: 用file_get_contents 以get方式获取内容: <?php $urlhttp://www.51growup.com/; $html f…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...