spring\strust\springboot\isp前后端那些事儿
后端
一. 插入\更新一条数据(老)
Map<String, Object> parameterMap = MybatisUtil.initParameterSave("Send_ProjectFrozenLog", sendProjectFrozenLog);
commonMapper.insert(parameterMap);parameterMap = MybatisUtil.initParameterSave("Send_ProjectFrozenLog", sendProjectFrozenLog);
commonMapper.update(parameterMap);
二. Service里面方法的注解(老)
@Transactional(readOnly = false,propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
“readOnly = false ” 这个需要注意有没有写,以上问题源于铜陵派单pc端施工环节和勘察环节冻结和解冻功能,数据库sql输出但是数据库没有变化。原因一:查询冻结日志的Sysyguid的时候,projectNo写成了projectNO。原因二:至今不知道为什么新写的方法没有执行,大概跟框架有关,使用框架的insert和update方法。
三.新框架SpringBoot中有一些Dao可以直接使用一些方法
Project sendProjectInfo = projectDao.selectByPrimaryKey(projectNo);projectDao.updateByPrimaryKeySelective(sendProjectInfo);
以上问题源于铜陵派单app端施工环节和勘察环节冻结和解冻功能,在任一Mapper中如果使用自己写的sql更新send_projectInfo表,会启动失败。使用框架中方法不会
四.mapper文件格式
1.老框架
<select id="id" parameterType="String" resultType="String"><![CDATA[SELECT sysGuidFROM (SELECT sysGuidFROM ${@Send_ProjectFrozenLog}WHERE projectNo = #{projectNo}ORDER BY frozenDate DESC, frozenTime DESC)WHERE ROWNUM = 1]]>
</select>
表:
${@Send_Flow_SysConf}
2.新框架
<select id="queryLatestSendProjectFrozenLogSysGuid" parameterType="string" resultType="String"><![CDATA[SELECT sysGuidFROM (SELECT sysGuidFROM Send_ProjectFrozenLogWHERE projectNo = #{projectNo}ORDER BY frozenDate DESC, frozenTime DESC)WHERE ROWNUM = 1]]>
</select>
表:
Send_ProjectFrozenLog
3.差不多的
parameterType,resultType:
1.com.bestvike.modules.rfis.core.send.model.sendProjectFrozenLog
2.SendProjectInfo
3.map
4.String
用法:
1.set:
<set><if test="reconState !=null and reconState !=''">reconState=#{reconState},</if><if test="reconPredictDate !=null and reconPredictDate !=''">reconPredictDate = #{reconPredictDate},</if><if test="reconExpireDate !=null and reconExpireDate !=''">reconExpireDate = #{reconExpireDate},</if><if test="repairState !=null and repairState !=''">repairState=#{repairState},</if><if test="repairPredictDate !=null and repairPredictDate !=''">repairPredictDate = #{repairPredictDate},</if><if test="repairExpireDate !=null and repairExpireDate !=''">repairExpireDate = #{repairExpireDate}</if>
</set>
五. 获取前端的值
框架封装了是后端控制文件里定义并且写方法就可以读取前端的值。
也可以:httpServletRequest.getParameter(“JSKey”)
六. 新框架查询 不用写sql就可以查到某个实体类从而查到某个值
Example example = new Example(SysParameter.class);
example.createCriteria().andEqualTo("configName", "reconValidDays");
SysParameter sysParameter = sysParameterDao.selectOneByExample(example);
String repairExploreDays = sysParameter.getValue();
七. 新框架和老框架获取用户
新:
sendProjectFrozenLog.setThawDate(DateUtil.getDate());
sendProjectFrozenLog.setThawTime(DateUtil.getTime());
sendProjectFrozenLog.setThawUserId(user.getId());
sendProjectFrozenLog.setThawUserName(user.getName());
老:
sendProjectFrozenLog.setThawDate(DateUtil.getDate());
sendProjectFrozenLog.setThawTime(DateUtil.getTime());
sendProjectFrozenLog.setThawUserId(SessionThread.getUserId());
sendProjectFrozenLog.setThawUserName(SessionThread.getUserId());
八. 打包
使用notepad++编辑批处理文件updateFile-GitOrSvn0919.bat
updateFile-GitOrSvn0919.bat:
通过百度网盘分享的文件:updateFile-GitOrSvn0919.bat
链接:https://pan.baidu.com/s/1Zgf9hy7gwV3IdXGMg6aeVw
提取码:o6a3
notepad++:
通过百度网盘分享的文件:Notepad++.lnk
链接:https://pan.baidu.com/s/1F5EEX1uUmrt2BmBOMlOcXQ
提取码:7e71
,然后保存之后双击运行
去目标文件查看
按照规范命名整理
九. 环境配置
1.maven(tomcat ----strust\spring)
apache-maven-3.8.5:
通过百度网盘分享的文件:apache-maven-3.8.5.zip
链接:https://pan.baidu.com/s/1Mc2FSnUNWMnKCQnS_BpjIA
提取码:h735
-Dfile.encoding=utf-8
D:\apache-maven-3.8.5\conf\settings_bestvike.xml
D:\apache-maven-3.8.5\maven_repository
2.gradle(Application—springboot)
gradle-6.8.3:
通过百度网盘分享的文件:gradle-6.8.3.rar
链接:https://pan.baidu.com/s/1NTIRpVv35MCwtajLXmMa_w
提取码:53af
十. sql用法
1.instr
判断后面字符串是否包含在前面的字符串,如果是返回大于0的数,最终返回true
instr(sfi.steprole2, sfd.rolecode) > 0
2.listagg
把某个字段按照分组聚合起来用某个字符连接
listagg( t.value, ';') within GROUP(order by t.projecttype)
3.decode
判断某个字段(b)是否是某个值从而返回不同字段(a1\a2)
decode(p.ispecial, 'Y', p.ispeRegionName, p1.regionName) AS regionName:
p.ispecial: 这是第一个参数,代表要检查的值。
‘Y’: 这是第二个参数,代表要比较的值。
p.ispeRegionName: 如果 p.ispecial 等于 ‘Y’,则 DECODE 函数返回这个值。
p1.regionName: 如果 p.ispecial 不等于 ‘Y’,则 DECODE 函数返回这个值。
4.如果时间是date或者时间戳类型(年月日时分秒)但是取(年月日字符串类型)
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS date_string FROM dual;
5. extract
是一个SQL函数,用于从日期/时间值中提取特定的部分,如年、月、日、小时、分钟或秒。
SELECT EXTRACT(YEAR FROM timestamp_column) FROM my_table;
5. wm_concat
to_char(wm_concat(t.itemType)) as itemType
是Oracle数据库中的一个函数,它用于将多个字符串连接成一个单一的字符串,每个字符串之间用指定的分隔符隔开(默认是逗号,)。这个函数通常用于聚合操作,它会将分组中的多个值合并成一个字符串。
6. nvl
nvl( t1.inspectedtities, 0 )
处理空值,如果是空值就返回0
7. case when
---报修阶段审核中
UPDATE send_PROJECTINFO epi
SET epi.nodeSummary = CASEWHEN epi.busiNode = '1' AND epi.nodeStatus = '1' THEN (SELECT CASEWHEN rac.step = '2' THEN '维修资金审核中'WHEN rac.step = '3' THEN '报修信息审核中'ELSE '报修阶段审核中'ENDFROM (SELECT sfr.businesskey, sfr.step, sfr.flowName, ad.auditFlagFROM Send_Flow_RunInstance sfrleft join (SELECT businesskey , auditFlag, flowNameFROM (SELECT businesskey, auditFlag, auditDate, auditTime, flowName,ROW_NUMBER() OVER (PARTITION BY businesskey ORDER BY auditDate DESC, auditTime DESC) AS rnFROM Send_Flow_AuditDetail)WHERE rn = 1) ad ON sfr.businesskey = ad.businesskey and sfr.flowName = ad.flowName) racWHERE rac.businesskey = epi.projectNo and rac.flowName='repair_process')ELSE '报修阶段审核中'
END
WHERE epi.busiNode = '1' AND epi.nodeStatus = '1'
;---项目终止
UPDATE send_PROJECTINFO epi
SET epi.nodeSummary = CASEWHEN epi.busiNode = 'S' AND epi.nodeStatus = '3' THEN (SELECT CASEWHEN rac.flowName='reconnaissance_back_process' AND rac.auditFlag='Y' THEN'项目终止(勘察阶段退单)' WHEN rac.flowName='receipt_back_process' AND rac.auditFlag='Y' THEN '项目终止(施工阶段退单)'WHEN rac.flowName='repair_process' and rac.step='2' and rac.auditFlag='N' AND rac.roleCode='42' THEN '项目终止(维修资金审核不通过)'WHEN rac.flowName='repair_process' and rac.auditFlag='S' and epi.isRepeat='Y' THEN '项目终止(重复报修)'WHEN rac.flowName='repair_process' and rac.auditFlag='S' and epi.isOrigin='Y' and epi.originStatus='6' THEN '项目终止(原点且原企业能修)'WHEN rac.flowName='repair_process' and rac.auditFlag='S' and epi.isOrigin='Y' and epi.originStatus='7' THEN '项目终止(原企业无法维修)'ELSE '项目终止(报修信息审核不通过)'ENDFROM (select t.businesskey, t.step, t.flowName, t.auditFlag,t.roleCodefrom (SELECT sfr.businesskey, sfr.step, sfr.flowName, ad.auditFlag,ad.roleCode,ROW_NUMBER() OVER (PARTITION BY sfr.businesskey ORDER BY sfr.LASTTIME DESC) AS rnFROM Send_Flow_RunInstance sfrleft join (SELECT businesskey , auditFlag, flowName,roleCodeFROM (SELECT businesskey, auditFlag, auditDate, auditTime, flowName,roleCode,ROW_NUMBER() OVER (PARTITION BY businesskey ORDER BY auditDate DESC, auditTime DESC) AS rnFROM Send_Flow_AuditDetail)WHERE rn = 1) ad ON sfr.businesskey = ad.businesskey and sfr.flowName = ad.flowName)twhere t.rn=1) racWHERE rac.businesskey = epi.projectNo )ELSE '项目终止'
END
WHERE epi.busiNode = 'S' AND epi.nodeStatus = '3'
;
前端
一. 调用后台方法
1.grid里gridTriggerConfirm ----- ajax
action="gridTriggerConfirm('float', '_parent', {projectNo: '#projectNo#',busiNode: '#busiNode#', _title:'请确认'}, null, undefined, '您确定要提交该条施工信息吗?', submitRepairInfo)"/>
function submitRepairInfo(param) {var projectNo = param.projectNo;var busiNode = param.busiNode;var nodeStatus = param.nodeStatus;showProgress();$.ajax({type: 'post',url: 'submitRepairInfo.bv',data: {'projectNo': projectNo,'busiNode':busiNode,'nodeStatus':nodeStatus},success: function(jsonData) {if (!$.isEmpty(jsonData.promptInfo.showType)) {showPrompt(jsonData.promptInfo.showType, jsonData.promptInfo.showMsg);} else {showPrompt("操作成功!");}hideProgress();gridRefresh();}});}
2.grid里gridTriggerFrame点击出现弹窗
直接进入jsp
action="gridTriggerFrame('float', '_self', {projectNo: '#projectNo#',flag: 'repair', _title:'冻结项目'}, 'modules/rfis/core/send/project/freezeProject.jsp', 500, 180,false,window)" />
先调用后端再进入jsp(有初始化回显得值)
action="gridTriggerFrame('float', '_self', {projectNo: '#projectNo#',CorpName: '#CorpName#',regionName: '#regionName#',bldName: '#bldName#',address:'#address#',roomNo:'#showName#',corpNo:'#corpNo#',_title:'施工回单维护'}, 'queryProMessMainById.bv?flag=sg', 1300, 900)" />
弹窗中含有表单情况就是看下面form表单介绍
3.form表单
<form id="freezeForm" method="post" action="freezeProject.bv"><div class="operateDiv"><bv:button name="save" id="save" value="确认冻结"/><bv:button id="cancel" name="cancel" cssClass="closeModal" value="取消"/></div>
</form>
<head><%@include file="/modules/common/head.jsp" %><bv:define extra="date,auto" close="true" focusId="false"/><script type="text/javascript">$(document).ready(function () {$("#save").click(function () {$.submit($(this), $(this).parents("form"), "false", {success: beforeSubmitSuccess});});});function beforeSubmitSuccess(data){showPrompt("操作成功!");top.frameContent.gridAjax(undefined, true); // 刷新父页面top.uiDialog("close", "iframe", window); // 关闭当前页面};</script>
</head>
二. 点击调用后端接口校验
在原本bv方法中,添加校验如果失败就提示错误信息(框架自带),如果校验成功就继续往下走
function submitProjectApplication(param) {var projectNo = param.projectNo;showProgress();$.ajax({type: 'post',url: 'submitProjectApplication.bv',data: {'projectNo': projectNo},success: function(jsonData) {if (!$.isEmpty(jsonData.promptInfo.showType)) {showPrompt(jsonData.promptInfo.showType, jsonData.promptInfo.showMsg);} else {showPrompt("操作成功!");}hideProgress();gridRefresh();}});}
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void submitProjectApplication(String projectNo, PromptInfo promptInfo, FlowProgress flowProgress) {//判断必填文档是否上传boolean isUploadFile = true;List<DicDocType> docTypeList = sendMapper.listRequiredDocTypeByBusiType("1201");for (DicDocType dicDocType : docTypeList) {List<ArcUploadFile> uploadFileList = sendMapper.listUploadFilesByDocTypeAndKeyId(projectNo, dicDocType.getDocType());if (uploadFileList.isEmpty()) {isUploadFile = false;promptInfo.setShowType("error");promptInfo.setShowMsg("存在相关必填图档未维护,无法提交");break;}}
相关文章:
spring\strust\springboot\isp前后端那些事儿
后端 一. 插入\更新一条数据(老) Map<String, Object> parameterMap MybatisUtil.initParameterSave("Send_ProjectFrozenLog", sendProjectFrozenLog); commonMapper.insert(parameterMap);parameterMap MybatisUtil.initParameter…...
Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透
文章目录 1、 缓存预热2、 缓存雪崩3、 缓存击穿4、 缓存穿透总结 1、 缓存预热 什么是预热: mysql加入新增100条记录,一般默认以mysql为准作为底单数据,如何同步给redis(布隆过滤器)这100条新数据。 为什么需要预热…...
【Java计算机毕业设计】基于Springboot小药店销售管理系统【源代码+数据库+LW文档+开题报告+答辩稿+部署教程+代码讲解】
源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储:…...
AIGC与现代教育技术
目录 引言 一、AIGC在教育技术中的基本概念 1.1 什么是AIGC? 1.2 传统教育技术和AIGC的对比 二、实现过程:AIGC在现代教育中的实现 2.1 自动生成课件内容 2.1.1 代码示例:使用GPT生成教学文案 2.1.2 完善自动生成资料 2.1.3 多模态内…...
【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap
re:Invent 是全球云计算领域的顶级盛会,每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂,分享最新的技术成果和创新实践,深圳 UG 作为亚马逊云科技技术社区的重要组成部分,将借助 re:Invent 的东风,举办此…...
Java中的LIst
在Java中,List接口是集合框架(Collections Framework)的一部分,用于表示有序的集合(也称为序列)。List允许存储重复的元素,并且可以通过索引访问元素。以下是对Java中List的详细介绍:…...
源码分析之Openlayers中MousePosition鼠标位置控件
概述 本文主要介绍 Openlayers 中的MousePosition鼠标位置控件,该控件会创建一个元素在页面的右上方用来实时显示鼠标光标的位置坐标。该控件在实际应用很有效,可以实时获取鼠标位置,但是一般控件元素都会自定义。 源码分析 MousePosition…...
List深拷贝后,数据还是被串改
List深拷贝后数据还是被串改 List newList new ArrayList<>(oldList)newList.pushAll(oldList)你甚至想到了java8streamAPI以上还不行 List newList new ArrayList<>(oldList) 这是采用构造参数做到的深拷贝,是没问题的 newList.pushAll(oldList) …...
一级路由器与二级路由器网络互通配置,实现父网络访问子网络
一级路由器与二级路由器网络互通配置,实现父网络访问子网络 从图看a路由器是b的父路由。默认配置情况下b路由下的PC设备可以访问a路由器下的PC设备,但是a路由下的设备无法访问b路由下设备。 为了实现互通,需要配置静态路由表。 我的a路由器是…...
linux作 samba 服务端,linux windows文件互传,免账号密码
一 ubuntu 安装 sudo apt install samba二 修改samba 配置文件 1 路径 ls -l /etc/samba/smb.conf2 修改文件 a:配置成 匿名用户,无需输入账号 b:注意配置可读写且文件可创建可删除 [global] workgroup SAMBA security user passdb back…...
使用C#调用SAP的WebService接口
URL 是一个 WSDL 地址,这意味着你可以使用 SOAP Web Service 来调用ZRFC_WEB_MES_MM_015 接口。我们将使用 C# 中的 System.Web.Services.Protocols.SoapHttpClientProtocol 或 System.ServiceModel 命名空间来实现这一点。这里我们使用 System.ServiceModel 命名空…...
线程知识总结(二)
本篇文章以线程同步的相关内容为主。线程的同步机制主要用来解决线程安全问题,主要方式有同步代码块、同步方法等。首先来了解何为线程安全问题。 1、线程安全问题 卖票示例,4 个窗口卖 100 张票: class Ticket implements Runnable {priv…...
HarmonyOS(72)事件拦截处理详解
事件拦截 1、参考资料2、HitTestMode3、onTouchIntercept、onTouch、onClick事件执行顺序3.1、系统默认事件传递顺序3.2、子组件拦截事件1、参考资料 HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案HitTestModea…...
Leetcode-208. 实现Trie(前缀树)
前缀树是一个由“路径”和“节点”组成多叉树结构。由根节点出发,按照存储字符串的每个字符,创建对应字符路径,以此实现快速查找单词或是否为前缀的功能。 此题要求简单,只需实现下面几种功能: Trie() 初始化前缀树对…...
网络安全系列 之 SQL注入学习总结
1. sql注入概述 程序里面如果使用了未经校验的外部输入来构造SQL语句,就很可能会引入SQL注入漏洞。 注入攻击 对于字符串输入,如果这个字符串将被解释为某种指令,那么需要特别注意防止注入攻击。sql注入、os命令注入、xml注入是典型的攻击类…...
JVM中的方法绑定机制
JVM中的方法绑定机制主要分为静态绑定(Static Binding)和动态绑定(Dynamic Binding)两种。以下是关于这两种绑定机制的详细解释: 一、静态绑定(Static Binding) 定义:静态绑定是指在…...
tomato靶场攻略
前提:kali和tomato的连接方式都为net模式 tomato的默认网络连接方式为桥接模式,导入前注意修改,将tomato.ova的镜像导入虚拟机中 出现此页面则表示导入成功,打开kali虚拟机终端,切换为root权限 arp-scan -l 浏览器访…...
移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备
移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备 一、前提条件 确保路由器硬件支持: OpenWrt 路由器需要足够的存储空间和 CPU 性能来运行 Tailscale。确保设备架构支持 Tailscale 二进制文件,例…...
wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势
开发CuteMySQL/CuteSqlite开源客户端的时候,需要使用Scintilla编辑器,来高亮显示SQL语句,作为C/C领域最成熟稳定又小巧的开源编辑器,Scintilla提供了强大的功能,wxWidgets对Scintilla进行包装后的是控件类:…...
Spring Boot中Bean的 构造器注入、字段注入和方法注入
在Spring中,依赖注入(DI)是实现控制反转(IoC)的一种方式,Spring提供了多种注入方式来将依赖关系注入到Bean中,常见的方式有构造器注入、字段注入和方法注入。下面将详细介绍这三种注入方式。 1…...
深入浅出支持向量机(SVM)
1. 引言 支持向量机(SVM, Support Vector Machine)是一种常见的监督学习算法,广泛应用于分类、回归和异常检测等任务。自1990年代初期由Vapnik等人提出以来,SVM已成为机器学习领域的核心方法之一,尤其在模式识别、文本…...
梯度下降的数学原理:用泰勒公式剖析梯度下降
梯度下降(Gradient Descent)是机器学习中非常核心的优化算法,通过不断调整模型参数,让损失函数(Loss Function)逐渐变小,从而提高模型的性能。损失函数是一个用来衡量预测值与真实值差距的函数&…...
城市应急指挥系统
城市应急指挥系统的重要性 随着现代化城市的高速发展,我们面临着多种应急突发情景,如自然灾害、事故灾难、公共卫生事件以及社会安全事件等。这些事件对城市的安全稳定构成严重威胁,因此,建立一套高效、全面的城市应急指挥系统显…...
pycharm 快捷键
PyCharm 是一款功能强大的集成开发环境(IDE),提供了丰富的快捷键来提高开发效率。以下是一些常用的 PyCharm 快捷键(基于 Windows/Linux 系统,Mac 系统可能略有不同): 通用快捷键 功能快捷键&a…...
游戏网站大全
http://piano.ssjjss.com/ 钢琴模拟器 https://gangqin.bmcx.com/?tdsourcetags_pcqq_aiomsg#/ 在线钢琴 https://www.gushiwen.cn/ 古诗文; https://www.bilibili.com/video/BV1UEWpeaEQK/ https://bouncyballs.org/ 掉落的球球 https://fakeupdate.net/ 假装升级界面 ht…...
线性代数期末总复习的点点滴滴(1)
一、可逆矩阵、行列式、秩的关系 1.行列式与可逆矩阵的关系 所以,不难看出矩阵可逆的充分必要条件是该矩阵的行列式不为0。 2.接着来看,满秩和矩阵行列式的关系 不难看出满秩和行列式不为0是等价的。 3.再来看,满秩和矩阵可逆的关系 说明了…...
感受野如何计算?
感受野(Receptive Field, RF)是卷积神经网络(CNN)中的一个重要概念,它指的是网络中某个特定神经元能够接收到的输入图像上的区域大小。换句话说,感受野定义了输出特征图中的每个单元依赖于输入图像中哪些像…...
0101多级nginx代理websocket配置-nginx-web服务器
1. 前言 项目一些信息需要通过站内信主动推动给用户,使用websocket。web服务器选用nginx,但是域名是以前通过阿里云申请的,解析ip也是阿里云的服务器,甲方不希望更换域名。新的系统需要部署在内网服务器,简单拓扑图如…...
解决 Ubuntu 20.04 和 ROS Noetic 中的 No Module Named ‘rospkg‘ 错误
解决 Ubuntu 20.04 和 ROS Noetic 中的 “No Module Named ‘rospkg’” 错误 在 Ubuntu 20.04 系统上运行 ROS Noetic 时,遇到了一个常见错误:“缺少 rospkg 模块”。这种问题主要是由于 Python 环境配置不当所导致。以下是对该问题的详细分析…...
day14-16系统服务管理和ntp和防火墙
一、自有服务概述 服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务" window…...
java 根据路径下载文件转换为MultipartFile,并且上传到服务器
直接上代码 controller层 GetMapping("/downloadAndUploadAttachment")UpdateOperationLogging(msg "根据路径下载文件转换为MultipartFile,并且上传到服务器")Operation(summary "根据路径下载文件转换为MultipartFile,并且上传到服务器", de…...
递归实现指数型枚举(递归)
92. 递归实现指数型枚举 - AcWing题库 每个数有选和不选两种情况 我们把每个数看成每层,可以画出一个递归搜索树 叶子节点就是我们的答案 很容易写出每dfs函数 dfs传入一个u表示层数 当层数大于我们n时,去判断每个数字的选择情况,输出被选…...
WebMvcConfigurer和WebMvcConfigurationSupport(MVC配置)
一:基本介绍 WebMvcConfigurer是接口,用于配置全局的SpringMVC的相关属性,采用JAVABean的方式来代替传统的XML配置文件,提供了跨域设置、静态资源处理器、类型转化器、自定义拦截器、页面跳转等能力。 WebMvcConfigurationSupport是webmvc的…...
HIPT论文阅读
题目《Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning》 论文地址:[2206.02647] Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning 项目地址:mahmoodlab/HI…...
完全二叉树的权值(蓝桥杯2019年试题G)
给定一棵包含N个节点的完全二叉树,树上的每个节点都有一个权值,按从上到小、从左到右的顺序依次是A1、A2……An,(1,2,n为下标。)如下图所示。 现在,小明要把相同深度的节点的权值加到一起&#…...
用adb命令给APP做压力测试,有什么不同?
压力测试 app做压力测试目的是模拟用户在使用软件时随意向软件发出指令,例如操作app的点击,滑动,返回等一系列随机事件,来检测app的承受能力 第一步:手机安装包需要待测的app 第二步:输入adb start-ser…...
Spring 6 实现 Bean 异步初始化,减少项目启动时间
在 Spring 6 中,异步初始化 Bean 为优化应用启动性能提供了有力手段。通过让特定的 Bean 在后台进行初始化,避免其阻塞应用的启动流程,从而显著缩短应用从启动到对外提供服务的时间。 一、基础环境搭建 首先,确保项目的依赖中引入…...
【案例80】麒麟操作系统无法使用Uclient访问NC65
问题现象 麒麟操作系统,安装Uclient,添加应用后无法看到登录界面,一直在转圈。 问题分析 进入到Uclient的工作目录 发现在工作目录下,无相关app.log生成。 查看Uclient的main.log发现,有大量的报错与Uclient下的sha…...
一个签名笔迹量化分析专家辅助系统
写在正文前 关于签名的鉴定有国家制定的标准,一个小册子,好像是 80多页 ,俺看的还是 2000年版的,现在应该有很多新版本了。这方面有很多教材和书籍。而且国家也有专门的评审。 正文开始 这是翻老硬盘时发现的,09年左…...
富途证券C++面试题及参考答案
C++ 中堆和栈的区别 在 C++ 中,堆和栈是两种不同的内存区域,它们有许多区别。 从内存分配方式来看,栈是由编译器自动分配和释放的内存区域。当一个函数被调用时,函数内的局部变量、函数参数等会被压入栈中,这些变量的内存空间在函数执行结束后会自动被释放。例如,在下面的…...
鸿蒙app封装 axios post请求失败问题
这个问题是我的一个疏忽大意,在这里记录一下。如果有相同问题的朋友,可以借鉴。 当我 ohpm install ohos/axios 后,进行简单post请求验证,可以请求成功。 然后,我对axios 进行了封装。对axios 添加请求拦截器/添加响…...
详解 Qt WebEngine 模块
Qt WebEngine 模块是 Qt 提供的一个功能强大的模块,用于在 Qt 应用中嵌入和显示现代网页内容。该模块基于 Chromium 引擎,支持丰富的 Web 技术(如 HTML5、CSS3、JavaScript 等),适合需要嵌入网页浏览、Web 应用、JavaS…...
常用的缓存技术都有哪些
在计算机科学和软件开发领域,缓存技术是提高系统性能和响应速度 1. 本地缓存(Local Cache): • 存在于应用程序本地内存中的缓存,用于存储频繁访问的数据,以减少对外部存储(如数据库)…...
MySQL通过日志恢复数据的步骤
试验环境:Windows Server2012 r2、MySql-8.0.27-winx64。 1、先检查MySQL有没有开启binlog日志 通过下面的SQL命令查看MySQL是否开启日志以及日志文件的位置: show variables like %log_bin% 执行结果如下图所示: 图中,log_bi…...
SQL Server 表值函数使用示例
在 SQL Server 中,表值函数(Table-Valued Functions, TVFs)是一种用户定义函数,它可以返回一个表。表值函数有两种类型:内联表值函数(Inline Table-Valued Function)和多语句表值函数(Multi-Statement Table-Valued Function)。下面分别介绍这两种类型的表值函数及其使…...
计算机网络之多路转接epoll
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络之多路转接epoll 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 目…...
BPMN与一般的流程图区别在那里?
1. 语义和标准性 BPMN(业务流程建模符号) 基于标准语义:BPMN是一种标准化的业务流程建模语言,拥有一套严谨的语义规范。它由国际对象管理组织(OMG)维护,定义了事件、活动、网关和流向等元素的确…...
内容与资讯API优质清单
作为开发者,拥有一套API合集是必不可少的。这个开发者必备的API合集汇集了各种实用的API资源,为你的开发工作提供了强大的支持!无论你是在构建网站、开发应用还是进行数据分析,这个合集都能满足你的需求。你可以通过这些免费API获…...
uniapp获取内容高度
获取内容高度 getNewsHieght(index) {uni.createSelectorQuery().select(.content_${index}).boundingClientRect(rect > {console.log(打印该盒子的元素, rect.height);swiperHeight.value rect.height// console.log(打印swiperHeight的数值,this.swiperHeight);}).exec…...
Unity局部和世界坐标系相互转换的实现原理
注:本篇是基于唐老师的学习视频做的一些理论实践,需要提前知道一些线性代数的基础知识,原视频链接: 8.数学基础知识学习说明_哔哩哔哩_bilibili 前期准备: 知识点①: Unity中需要遵守的设定:…...