xxl-job升级到springboot3.0 导致页面打不开报错)问题
原因:springboot3.0 因为移除了jsp 导致xxl-job不能访问,解决方法如下
1、修改PermissionInterceptor拦截器
package com.xxl.job.admin.controller.interceptor;import com.xxl.job.admin.controller.annotation.PermissionLimit;
import com.xxl.job.admin.core.model.XxlJobUser;
import com.xxl.job.admin.core.util.I18nUtil;
import com.xxl.job.admin.service.LoginService;import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.AsyncHandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;/*** 权限拦截** @author xuxueli 2015-12-12 18:09:04*/
@Component
public class PermissionInterceptor implements AsyncHandlerInterceptor {@Resourceprivate LoginService loginService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {if (!(handler instanceof HandlerMethod)) {return true; // proceed with the next interceptor}// if need loginboolean needLogin = true;boolean needAdminuser = false;HandlerMethod method = (HandlerMethod)handler;PermissionLimit permission = method.getMethodAnnotation(PermissionLimit.class);if (permission!=null) {needLogin = permission.limit();needAdminuser = permission.adminuser();}if (needLogin) {XxlJobUser loginUser = loginService.ifLogin(request, response);if (loginUser == null) {response.setStatus(302);response.setHeader("location", request.getContextPath()+"/toLogin");return false;}if (needAdminuser && loginUser.getRole()!=1) {throw new RuntimeException(I18nUtil.getString("system_permission_limit"));}request.setAttribute(LoginService.LOGIN_IDENTITY_KEY, loginUser);}return true; // proceed with the next interceptor}/*** 新增拦截方法* @param request* @param response* @param handler* @param modelAndView* @throws Exception*/@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {// 此处数据是preHandle方法set的loginUser信息Object loginIdentityKey = request.getAttribute("XXL_JOB_LOGIN_IDENTITY");if (null != modelAndView && null != loginIdentityKey) {modelAndView.addObject("XXL_JOB_LOGIN_IDENTITY", loginIdentityKey);}}
}
2、修改common.macro.ftl文件
<#macro commonStyle><#-- favicon --><link rel="icon" href="${request.contextPath}/static/favicon.ico" /><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- Tell the browser to be responsive to screen width --><meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"><!-- Bootstrap --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css"><!-- Font Awesome --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css"><!-- Ionicons --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/Ionicons/css/ionicons.min.css"><!-- Theme style --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/AdminLTE.min.css"><!-- AdminLTE Skins. Choose a skin from the css/skins folder instead of downloading all of them to reduce the load. --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/skins/_all-skins.min.css"><!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn't work if you view the page via file:// --><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><!-- pace --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css"><#-- i18n --><#global I18n = I18nUtil.getMultString()?eval /></#macro><#macro commonScript><!-- jQuery --><script src="${request.contextPath}/static/adminlte/bower_components/jquery/jquery.min.js"></script><!-- Bootstrap --><script src="${request.contextPath}/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js"></script><!-- FastClick --><script src="${request.contextPath}/static/adminlte/bower_components/fastclick/fastclick.js"></script><!-- AdminLTE App --><script src="${request.contextPath}/static/adminlte/dist/js/adminlte.min.js"></script><!-- jquery.slimscroll --><script src="${request.contextPath}/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script><!-- pace --><script src="${request.contextPath}/static/adminlte/bower_components/PACE/pace.min.js"></script><#-- jquery cookie --><script src="${request.contextPath}/static/plugins/jquery/jquery.cookie.js"></script><#-- jquery.validate --><script src="${request.contextPath}/static/plugins/jquery/jquery.validate.min.js"></script><#-- layer --><script src="${request.contextPath}/static/plugins/layer/layer.js"></script><#-- common --><script src="${request.contextPath}/static/js/common.1.js"></script><script>var base_url = '${request.contextPath}';var I18n = ${I18nUtil.getMultString()};</script></#macro><#macro commonHeader><header class="main-header"><a href="${request.contextPath}/" class="logo"><span class="logo-mini"><b>XXL</b></span><span class="logo-lg"><b>${I18n.admin_name}</b></span></a><nav class="navbar navbar-static-top" role="navigation"><a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><div class="navbar-custom-menu"><ul class="nav navbar-nav"><#-- login user --><li class="dropdown"><a href="javascript:" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">${I18n.system_welcome} ${XXL_JOB_LOGIN_IDENTITY.username}<span class="caret"></span></a><ul class="dropdown-menu" role="menu"><li id="updatePwd" ><a href="javascript:">${I18n.change_pwd}</a></li><li id="logoutBtn" ><a href="javascript:">${I18n.logout_btn}</a></li></ul></li></ul></div></nav></header><!-- 修改密码.模态框 --><div class="modal fade" id="updatePwdModal" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><h4 class="modal-title" >${I18n.change_pwd}</h4></div><div class="modal-body"><form class="form-horizontal form" role="form" ><div class="form-group"><label for="lastname" class="col-sm-2 control-label">${I18n.change_pwd_field_newpwd}<font color="red">*</font></label><div class="col-sm-10"><input type="text" class="form-control" name="password" placeholder="${I18n.system_please_input} ${I18n.change_pwd_field_newpwd}" maxlength="18" ></div></div><hr><div class="form-group"><div class="col-sm-offset-3 col-sm-6"><button type="submit" class="btn btn-primary" >${I18n.system_save}</button><button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button></div></div></form></div></div></div></div></#macro><#macro commonLeft pageName ><!-- Left side column. contains the logo and sidebar --><aside class="main-sidebar"><!-- sidebar: style can be found in sidebar.less --><section class="sidebar"><!-- sidebar menu: : style can be found in sidebar.less --><ul class="sidebar-menu"><li class="header">${I18n.system_nav}</li><li class="nav-click <#if pageName == "index">active</#if>" ><a href="${request.contextPath}/"><i class="fa fa-circle-o text-aqua"></i><span>${I18n.job_dashboard_name}</span></a></li><li class="nav-click <#if pageName == "jobinfo">active</#if>" ><a href="${request.contextPath}/jobinfo"><i class="fa fa-circle-o text-yellow"></i><span>${I18n.jobinfo_name}</span></a></li><li class="nav-click <#if pageName == "joblog">active</#if>" ><a href="${request.contextPath}/joblog"><i class="fa fa-circle-o text-green"></i><span>${I18n.joblog_name}</span></a></li><#if XXL_JOB_LOGIN_IDENTITY.role == 1><li class="nav-click <#if pageName == "jobgroup">active</#if>" ><a href="${request.contextPath}/jobgroup"><i class="fa fa-circle-o text-red"></i><span>${I18n.jobgroup_name}</span></a></li><li class="nav-click <#if pageName == "user">active</#if>" ><a href="${request.contextPath}/user"><i class="fa fa-circle-o text-purple"></i><span>${I18n.user_manage}</span></a></li></#if><li class="nav-click <#if pageName == "help">active</#if>" ><a href="${request.contextPath}/help"><i class="fa fa-circle-o text-gray"></i><span>${I18n.job_help}</span></a></li></ul></section><!-- /.sidebar --></aside>
</#macro><#macro commonControl ><!-- Control Sidebar --><aside class="control-sidebar control-sidebar-dark"><!-- Create the tabs --><ul class="nav nav-tabs nav-justified control-sidebar-tabs"><li class="active"><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li><li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li></ul><!-- Tab panes --><div class="tab-content"><!-- Home tab content --><div class="tab-pane active" id="control-sidebar-home-tab"><h3 class="control-sidebar-heading">近期活动</h3><ul class="control-sidebar-menu"><li><a href="javascript::;"><i class="menu-icon fa fa-birthday-cake bg-red"></i><div class="menu-info"><h4 class="control-sidebar-subheading">张三今天过生日</h4><p>2015-09-10</p></div></a></li><li><a href="javascript::;"> <i class="menu-icon fa fa-user bg-yellow"></i><div class="menu-info"><h4 class="control-sidebar-subheading">Frodo 更新了资料</h4><p>更新手机号码 +1(800)555-1234</p></div></a></li><li><a href="javascript::;"> <i class="menu-icon fa fa-envelope-o bg-light-blue"></i><div class="menu-info"><h4 class="control-sidebar-subheading">Nora 加入邮件列表</h4><p>nora@example.com</p></div></a></li><li><a href="javascript::;"><i class="menu-icon fa fa-file-code-o bg-green"></i><div class="menu-info"><h4 class="control-sidebar-subheading">001号定时作业调度</h4><p>5秒前执行</p></div></a></li></ul><!-- /.control-sidebar-menu --></div><!-- /.tab-pane --><!-- Settings tab content --><div class="tab-pane" id="control-sidebar-settings-tab"><form method="post"><h3 class="control-sidebar-heading">个人设置</h3><div class="form-group"><label class="control-sidebar-subheading"> 左侧菜单自适应<input type="checkbox" class="pull-right" checked></label><p>左侧菜单栏样式自适应</p></div><!-- /.form-group --></form></div><!-- /.tab-pane --></div></aside><!-- /.control-sidebar --><!-- Add the sidebar's background. This div must be placed immediately after the control sidebar --><div class="control-sidebar-bg"></div>
</#macro><#macro commonFooter ><footer class="main-footer">Powered by <b>XXL-JOB</b> ${I18n.admin_version}<div class="pull-right hidden-xs"><strong>Copyright © 2015-${.now?string('yyyy')} <a href="https://www.xuxueli.com/" target="_blank" >xuxueli</a> <a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a></strong><!-- All rights reserved. --></div></footer>
</#macro>
3、修改joblog.index.ftl文件
<!DOCTYPE html>
<html>
<head><#import "../common/common.macro.ftl" as netCommon><@netCommon.commonStyle /><!-- DataTables --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css"><!-- daterangepicker --><link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css"><title>${I18n.admin_name}</title>
</head>
<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if> ">
<div class="wrapper"><!-- header --><@netCommon.commonHeader /><!-- left --><@netCommon.commonLeft "joblog" /><!-- Content Wrapper. Contains page content --><div class="content-wrapper"><!-- Content Header (Page header) --><section class="content-header"><h1>${I18n.joblog_name}</h1></section><!-- Main content --><section class="content"><div class="row"><div class="col-xs-2"><div class="input-group"><span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span><select class="form-control" id="jobGroup" paramVal="<#if jobInfo?exists>${jobInfo.jobGroup}</#if>" ><#if XXL_JOB_LOGIN_IDENTITY.role == 1><option value="0" >${I18n.system_all}</option> <#-- 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup --></#if><#list JobGroupList as group><option value="${group.id}" >${group.title}</option></#list></select></div></div><div class="col-xs-2"><div class="input-group"><span class="input-group-addon">${I18n.jobinfo_job}</span><select class="form-control" id="jobId" paramVal="<#if jobInfo?exists>${jobInfo.id}</#if>" ><option value="0" >${I18n.system_all}</option></select></div></div><div class="col-xs-2"><div class="input-group"><span class="input-group-addon">${I18n.joblog_status}</span><select class="form-control" id="logStatus" ><option value="-1" >${I18n.joblog_status_all}</option><option value="1" >${I18n.joblog_status_suc}</option><option value="2" >${I18n.joblog_status_fail}</option><option value="3" >${I18n.joblog_status_running}</option></select></div></div><div class="col-xs-4"><div class="input-group"><span class="input-group-addon">${I18n.joblog_field_triggerTime}</span><input type="text" class="form-control" id="filterTime" readonly ></div></div><div class="col-xs-1"><button class="btn btn-block btn-info" id="searchBtn">${I18n.system_search}</button></div><div class="col-xs-1"><button class="btn btn-block btn-default" id="clearLog">${I18n.joblog_clean}</button></div></div><div class="row"><div class="col-xs-12"><div class="box"><#--<div class="box-header hide"><h3 class="box-title">调度日志</h3></div>--><div class="box-body"><table id="joblog_list" class="table table-bordered table-striped display" width="100%" ><thead><tr><th name="jobId" >${I18n.jobinfo_field_id}</th><th name="jobGroup" >jobGroup</th><#--<th name="executorAddress" >执行器地址</th><th name="glueType" >运行模式</th><th name="executorParam" >任务参数</th>--><th name="triggerTime" >${I18n.joblog_field_triggerTime}</th><th name="triggerCode" >${I18n.joblog_field_triggerCode}</th><th name="triggerMsg" >${I18n.joblog_field_triggerMsg}</th><th name="handleTime" >${I18n.joblog_field_handleTime}</th><th name="handleCode" >${I18n.joblog_field_handleCode}</th><th name="handleMsg" >${I18n.joblog_field_handleMsg}</th><th name="handleMsg" >${I18n.system_opt}</th></tr></thead><tbody></tbody></table></div></div></div></div></section></div><!-- footer --><@netCommon.commonFooter />
</div><!-- 日志清理.模态框 -->
<div class="modal fade" id="clearLogModal" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title" >${I18n.joblog_clean_log}</h4></div><div class="modal-body"><form class="form-horizontal form" role="form" ><div class="form-group"><label class="col-sm-3 control-label">${I18n.jobinfo_field_jobgroup}:</label><div class="col-sm-9"><input type="text" class="form-control jobGroupText" readonly ><input type="hidden" name="jobGroup" ></div></div><div class="form-group"><label class="col-sm-3 control-label">${I18n.jobinfo_job}:</label><div class="col-sm-9"><input type="text" class="form-control jobIdText" readonly ><input type="hidden" name="jobId" ></div></div><div class="form-group"><label class="col-sm-3 control-label">${I18n.joblog_clean_type}:</label><div class="col-sm-9"><select class="form-control" name="type" ><option value="1" >${I18n.joblog_clean_type_1}</option><option value="2" >${I18n.joblog_clean_type_2}</option><option value="3" >${I18n.joblog_clean_type_3}</option><option value="4" >${I18n.joblog_clean_type_4}</option><option value="5" >${I18n.joblog_clean_type_5}</option><option value="6" >${I18n.joblog_clean_type_6}</option><option value="7" >${I18n.joblog_clean_type_7}</option><option value="8" >${I18n.joblog_clean_type_8}</option><option value="9" >${I18n.joblog_clean_type_9}</option></select></div></div><hr><div class="form-group"><div class="col-sm-offset-3 col-sm-6"><button type="button" class="btn btn-primary ok" >${I18n.system_ok}</button><button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button></div></div></form></div></div></div>
</div><@netCommon.commonScript />
<!-- DataTables -->
<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
<!-- daterangepicker -->
<script src="${request.contextPath}/static/adminlte/bower_components/moment/moment.min.js"></script>
<script src="${request.contextPath}/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js"></script>
<script src="${request.contextPath}/static/js/joblog.index.1.js"></script>
</body>
</html>相关文章:
xxl-job升级到springboot3.0 导致页面打不开报错)问题
原因:springboot3.0 因为移除了jsp 导致xxl-job不能访问,解决方法如下 1、修改PermissionInterceptor拦截器 package com.xxl.job.admin.controller.interceptor;import com.xxl.job.admin.controller.annotation.PermissionLimit; import com.xxl.job.…...
栈和队列.
目录 1. 栈(Stack) 2. 栈的模拟实现 3. 栈的应用场景 4. 队列(Queue) 5. 队列的模拟实现 6. 循环队列 7. 双端队列(Deque) 8. 面试题 1. 栈(Stack) 栈:一种特殊…...
Parallel.ForEach - 并行处理
Parallel.ForEach 是 C# 中 System.Threading.Tasks.Parallel 类提供的一个方法,用于并行地迭代集合中的每一个元素。Parallel.ForEach 方法允许多个线程同时处理集合中的元素,从而提高程序的执行效率,特别是在处理大量数据或执行耗时任务时。…...
【MySQL】初识MySQL—MySQL是啥,以及如何简单操作???
前言: 🌟🌟本期讲解关于MySQL的简单使用和注意事项,希望能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/wwaqe 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 目…...
LLM应用实战: 产业治理多标签分类
数据介绍 标签体系 产业治理方面的标签体系共计200个,每个标签共有4个层级,且第3、4层级有标签含义的概括信息。 原始数据 企业官网介绍数据,包括基本介绍、主要产品等 企业专利数据,包括专利名称和专利摘要信息,且专…...
下载Mongodb 4.2.25 版本教程
1、MongoDB 安装包的下载链接 Download MongoDB Community Server | MongoDB 进入如下截图: 2、查找历史版本 往下拉,点击“...”,找到”Archived releases”,点击进入 、 3、下载Mongodb 4.2.25 版本 找到如下图4.2.25版本下载链接,点击就可…...
docker拉取redis5.0.5并建立redis集群
1.配置文件 mkdir -p redis-cluster/7001/ mkdir -p redis-cluster/7002/ mkdir -p redis-cluster/7003/ mkdir -p redis-cluster/7004/ mkdir -p redis-cluster/7005/ mkdir -p redis-cluster/7006/cd redis-clustervim 7001/redis.confbind 0.0.0.0port 7001cluster-enabled…...
React16新手教程记录
文章目录 前言一些前端面试题1. 搭建项目1. 1 cdn1. 2 脚手架 2. 基础用法2.1 表达式和js语句区别:2.2 jsx2.3 循环map2.4 函数式组件2.5 类式组件2.6 类组件点击事件2.6.1 事件回调函数this指向2.6.2 this解决方案2.6.2.1 通过bind2.6.2.2 箭头函数(推荐…...
怎么摆脱非自然链接?
什么是非自然链接? 非自然链接是人为创建的链接,用于操纵网站在搜索引擎中的排名。非自然链接违反了Google 的准则,网站可能会因此受到惩罚。 它们不是由网站所有者编辑放置或担保的。示例包括带有过度优化锚文本的链接、通过 PR 的广告、嵌…...
【2024数模国赛赛题思路公开】国赛B题第二套思路丨附可运行代码丨无偿自提
2024年数模国赛B题解题思路 B 题 生产过程中的决策问题 一、问题1解析 问题1的任务是为企业设计一个合理的抽样检测方案,基于少量样本推断整批零配件的次品率,帮助企业决定是否接收供应商提供的这批零配件。具体来说,企业需要依据两个不同…...
P1166 打保龄球
共可以投 1 局 一局10轮 在一局中,一共有十个柱,会出现很多种情况。 第1次把10个 打倒全部 >> 分数10后2次得分 --若是第10轮则还需另加两次滚球; 没全部打倒 >> 第2次把剩下的 打倒 >&g…...
[数据集][目标检测]西红柿成熟度检测数据集VOC+YOLO格式3241张5类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3241 标注数量(xml文件个数):3241 标注数量(txt文件个数):3241 标注…...
数仓工具—Hive语法之URL 函数
hive—语法—URL 函数 业务需求中,我们经常需要对用户的访问、用户的来源进行分析,用于支持运营和决策。例如我们经常对用户访问的页面进行统计分析,分析热门受访页面的Top10,观察大部分用户最喜欢的访问最多的页面等: 又或者我们需要分析不同搜索平台的用户来源分析,统…...
c#如何实现触发另外一个文本框的回车事件
一.需求 我需要实现listview中的一行双击后,将其中的一个值传给一个文本框,传完后,给文本框一个回车指令。 我的方法:后面加上 \rthis.txt_ID.Text this.listView1.SelectedItems[0].Text"\r" 结果无效。 二.问通义…...
Vue 中 nextTick 的最主要作用是什么,为什么要有这个 API
在 Vue.js 中,nextTick 是一个用于在 DOM 更新后执行代码的 API。它的主要作用是确保在某个操作完成后,DOM 已经更新且可以被访问或操作。这个 API 在处理需要等待 DOM 更新完成的逻辑时非常有用。 nextTick 的最主要作用 确保 DOM 更新完成: Vue 的响应…...
python科学计算:NumPy 数组的运算
1 数组的数学运算 NumPy 提供了一系列用于数组运算的函数和操作符,这些运算可以作用于数组的每个元素上。常见的数学运算包括加、减、乘、除等。 1.1 元素级运算 NumPy 支持对数组的每个元素进行逐元素运算。这些操作可以通过标准的数学符号或 NumPy 函数来完成。…...
SAP B1 基础实操 - 用户定义字段 (UDF)
目录 一、功能介绍 1. 使用场景 2. 操作逻辑 3. 常用定义部分 3.1 主数据 3.2 营销单据 4. 字段设置表单 4.1 字段基础信息 4.2 不同类详细设置 4.3 默认值/必填 二、案例 1 要求 2 操作步骤 一、功能介绍 1. 使用场景 在实施过程中,经常会碰见用户需…...
Idea发布springboot项目无法识别到webapp下面的静态资源
问题: Idea发布springboot项目无法识别到webapp下面的静态资源 访问报错404 解决办法: 修改之后重新构建,访问成功...
Redis及其他缓存
1.NOSQL、Redis概述,通用命令,redis五大数据类型,三大特殊数据类型 NOSQL概述: (NOT ONLY SQL-不仅仅是SQL),泛指非关系型数据库,为解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用问题 常见no…...
golang入门
学习视频:https://www.bilibili.com/video/BV1gf4y1r79E go安装 go源码包一般解压到/usr/local/linux下go的环境变量配置: export GOROOT/usr/local/go # 源码包export GOPATH$HOME/go # 工作路径export PATH P A T H : PATH: PATH:GOROOT/bin:$GOPATH/…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
