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

Maven进阶

前言

我们这一节讲一下Maven

1. 分模块开发的意义

在这里插入图片描述
同一个程序我们按功能划分为不同的模块
在这里插入图片描述
同一个模块导成jar之类的,这样就可以共享数据了

在这里插入图片描述

2. 分模块开发与设计

我们以原来的ssm整合的模块来考虑

在这里插入图片描述
我们来把domain这个模块搞消失,重新制造一个模块

在这里插入图片描述
我们先创建一个新模块

在这里插入图片描述
然后把上面那个模块里面的domain里面的内容复制过来
在这里插入图片描述
然后删掉原来springmvc模块里面的domain

在这里插入图片描述
然后把这两个模块合在一起操作

在配置文件中增加插件就可以了

pom.xml:

在这里插入图片描述
把domain的坐标搞过来就可以了

在这里插入图片描述这个是domain的坐标

在这里插入图片描述
在这里插入图片描述
这样我们就引进来了

然后就相当于我们有Book这个类了
在这里插入图片描述
但是我们会报错,为什么呢,因为我们下载资源的时候,是在本地资源下载的,而我们这个新导入的,本地仓库根本就没有这个坐标
所以我们要把新的maven模块打包放进本地仓库

在这里插入图片描述
这里就是我们的本地仓库

所以我们要用install来把当前模块安装到仓库中

在这里插入图片描述

点击这个
在这里插入图片描述
然后就安装成功了

我们把groupid改为com.itheima

我也不知道为什么会安装到这里,可能是原来安装Maven的时候没有设置好吧

然后我们还要把项目和每个模块的SDK都设置为17的版本,这么就可以了

在这里插入图片描述

我们的本地仓库是在这里的

在这里插入图片描述
我们点击compile编译

在这里插入图片描述

发现成功了,那么就没有问题了

所以就是导入坐标,把这个模块导入本地仓库就OK了

现在我们把dao拆出来

在这里插入图片描述

在这里插入图片描述

这里开始解决报错

我们在pom中引入pojo的坐标解决Book的问题

在这里插入图片描述

在这里插入图片描述

然后其他报红是mybatis相关坐标

我们导入就可以了

在这里插入图片描述

在这里插入图片描述

然后在springmvc模块中引入dao模块

在这里插入图片描述
在这里插入图片描述
compile一下就报错了,因为我们没有安装

在这里插入图片描述
安装一下dao模块到本地仓库中

在这里插入图片描述
在这里插入图片描述
而且也能用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 依赖传递

3.1 依赖传递

在这里插入图片描述
依赖就是我们导入的jar包,就是我们导入的坐标
在这里插入图片描述
这些就是依赖,有箭头的就表示这个依赖就依靠别的依赖
在这里插入图片描述
我们这里可以看出来,Maven2依赖Maven1,那么,我们可以在springmvc中删掉Mavenq1的坐标
在这里插入图片描述
这就是依赖传递性,你的依赖依赖了别人,那么你就可以直接使用别人
在这里插入图片描述

在这里插入图片描述
依赖冲突就是依赖的某个坐标版本不一样
在这里插入图片描述
在这里插入图片描述
同一个依赖写了多次,以最后配置的版本为准
这就是特殊优先
在这里插入图片描述
点击这个按钮,就可以看依赖的层级了

在这里插入图片描述

4 可选依赖与排除依赖

4.1 可选依赖

在这里插入图片描述

如何把这些依赖给隐藏掉呢,不给别人看
原:
在maven_02_dao中加上
在这里插入图片描述

            <optional>true</optional>

加上这一个就可以隐藏

原:
在这里插入图片描述
现在:

在这里插入图片描述
所以对应Book也不见了

这是什么意思呢,意思就是你对当前工程的某个资源进行依赖,把它隐藏后,对应资源将不具有依赖性

意思就是我们在dao中把pojo给optional选择true,那么这个pojo就不具有依赖传递了,意思就是pojo这个依赖只能在dao中用,因为这个没有传递,不能在springmvc中用了,因为不能传递了,改成false就是默认的值

但是我的可选依赖好像有问题,不能实现,所以上面的例子就不要看了

4.2 排除依赖

在这里插入图片描述
现在我们在dao中导入日志技术的坐标
我们要在springmvc中排除这个坐标
就是在springmvc中导入dao的时候,特定排除日志这个坐标
springmvc:

在这里插入图片描述
不需要写版本,因为排除的是排除这门技术

原:
在这里插入图片描述

有log4j

现在:
在这里插入图片描述
隐藏依赖是dao不给springmvc用
排除依赖是springmvc不用别人的

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

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

5. 聚合

在这里插入图片描述
就是我们一个模块发生变化,如果没有install的话,其他模块就跟着可能不能用了
在这里插入图片描述
所以我们来个管理员类,就是发生了变化,全部一起install
这就是聚合
在这里插入图片描述
在这里插入图片描述
他就是用来帮助我们做聚合的
在这里插入图片描述
所以它的打包方式也会发生变化

默认打包方式是jar
web工程打包方式是war
聚合打包是pom
在这里插入图片描述
现在开始说明它来管理三个模块

在这里插入图片描述
在这里插入图片描述
看得出来有结构了
我们再来执行compile

在这里插入图片描述
这样四个工程都参与构建了

注意构建的顺序是和依赖关系相关了,意思是先构建没有依赖的,在构建需要依赖的
在这里插入图片描述
在这里插入图片描述

6. 继承

在这里插入图片描述
有整体一样的依赖,也有部分一样的依赖,怎么简化呢
还有一个问题就是,修改一个依赖的版本号,能不能大家一起改呢

在这里插入图片描述
我们用00来作为父工程
其他的都是子工程
然后就是继承关系就是在子类中描述
springmvc_04:
在这里插入图片描述

所以我们现在把子工程里面的依赖全部都给父工程

然后就是父工程里面的依赖,如果不是每一个工程都需要的话,就删掉就可以了
比如dao,pojo
spring的东西大家都用
然后就差不多了
在这里插入图片描述
然后删除对应springmvc中继承的
在这里插入图片描述
就剩这么多了
这样的话,就都有依赖了
在这里插入图片描述

而且你把父工程版本改了,所以子工程都对应改了

那如果有两个子工程要junit,有一个不要改怎么搞呢

我们在00这里写上
在这里插入图片描述
写上定义依赖管理的话,springmvc那里就没有junit了()在这里插入图片描述

说一下,我们做的操作就是把springmvc中的junit剪切走,然后给到了依赖管理这里,定义在这里的就不是所有的都能继承了,如果你想用这个依赖的话,你要自己写才能用,这个就是依赖管理
然后springmvc中就要写上junit了,但是不能写上版本
springmvc_04:
在这里插入图片描述
不用写版本,因为版本就是父工程中的版本,你写了就用的是自己的版本了
这样就有了,但是dao没有,这就成功了

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

7. 属性

在这里插入图片描述

我们看这个,我们全是5.1.9的版本,如何改一个版本,全部跟着走呢
主要是怕漏改了
其实我们可以定义一个变量,那么只需要改这个变量就可以了

在这里插入图片描述

我们去维护父工程

在这里插入图片描述
我们在properties那里增加一个 <spring.version>5.2.10.RELEASE</spring.version>
就可以维护了,就可以设置属性了

在这里插入图片描述

这样改一下就可以了

在这里插入图片描述

在增加一个junit

在这里插入图片描述

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

8. 配置文件加载属性

在这里插入图片描述

就是说我们能不能把这里的内容也加载为属性,统一管理

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

在这里插入图片描述
就这样就行了吗,这是不行的,我们在pom文件设置的属性,就只能在pom文件中用,所以必须扩大Maven的控制范围

我们用build来构建设定

在这里插入图片描述
resources就是用来配置资源文件的,directory是资源文件的目录
第二个就是开启过滤规则,让它能够识别${}这种符号
在这里插入图片描述
这就让我们指定的文件可以去解析{}的属性了

但是这样配置还是不能用的

因为这样是找不到的,因为是根据相对路径来找的
在这里插入图片描述

这样写也不太好,因为万一其他地方也有这个配置文件呢,我们也要调用呢

在这里插入图片描述
这个${project.basedir}表示这个项目所在的目录,所以这样写就可以了

在这里插入图片描述
我们在改成locallhost的就可以正常运行了

所以没什么问题

8.1 补充

我们的maven项目要打包的话,必须要有web,xml这个文件才行(有就行了),不用管里面内容,现在我们来演示一下不用web.xml打包的方式

我们导入plugin

在这里插入图片描述
这样写就可以了
这个第八的内容并不是很主流,了解即可
在这里插入图片描述
project.basedir这个东西属于内置属性

在这里插入图片描述

9. 版本管理

在这里插入图片描述

10. 多环境开发

从这一节开始就比较实用了

在这里插入图片描述
在这里插入图片描述
我们先把三种环境定义出来

在这里插入图片描述
我们把原来写的jdbc.url给注释掉

在这里插入图片描述
这样写就表示jdbc.url这个属性属于env_dep这个环境

在这里插入图片描述
然后我们在install一下,然后去maven里面去看生效没有

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里就是war包了

反正默认环境设置的哪个,我们这里运行的就是那个

但我们还以为让它根据我们的指令来选择对应环境

在这里插入图片描述
这个可以执行maven指令

在这里插入图片描述
-p的意思是指定环境,后面跟环境

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

11. 跳过测试

在这里插入图片描述
我们点package,上面的就是测试

就是在打包前会测试,会走测试用例,万一测试有问题,那么就不能测试了

在这里插入图片描述
我们点击这个按钮,就可以跳过测试了,并且test变灰了

我也可以指定跳过测试,这是一个插件,还是写在plugin中

在这里插入图片描述
这个就和上面我们点的按钮是一样的效果了

这样打包的时候就没有测试了

现在开始写指定跳过某些测试

在这里插入图片描述

这样的话就是BookServiceTest.java不测试
在这里插入图片描述

这样就跳过测试了

在这里插入图片描述
指令这样写也代表着跳过测试

12. 私服简介与安装

就是我们做的东西在小组之间共享,这个就是私服来实现

在这里插入图片描述
一个新的服务器,可以放我们的东西,互联网上的,大家都能用的就是中央

在这里插入图片描述

先下载私服

在这里插入图片描述

下载这个就可以了

然后我直接在资料里面安装就可以了

在这里插入图片描述
就是第一个

在这里插入图片描述
这两个都需要

在这里插入图片描述
我们先看第一个

在这里插入图片描述
lib里面有jar包
进去bin
在这里插入图片描述
这里就是启动程序
这两个大文件都不能少的
怎么用呢

在这里插入图片描述
我们在上面敲cmd指令

在这里插入图片描述
然后输入指令

在这里插入图片描述
在这里插入图片描述
但是我们运行直接出错了,这是因为目录下面有中文,我们放在soft文件夹下继续试一下

在这里插入图片描述
这也是一个服务器,和tomcat一模一样

在这里插入图片描述
这下我们就要在浏览器上访问了

我们直接输入http://localhost:8081/

在这里插入图片描述
然后点击右上角的登录按钮

在这里插入图片描述
这个的意思就是用户名叫做admin,密码在这个路径中

我们去找一下

在这里插入图片描述
就是这个

在这里插入图片描述
在这里插入图片描述
然后登录

在这里插入图片描述
设置新密码

在这里插入图片描述
允许匿名访问

在这里插入图片描述
在这里插入图片描述
这个是浏览使用
在这里插入图片描述
这个是设置使用

在这里插入图片描述
在这里插入图片描述
这个是启动配置

在这里插入图片描述
这里面比如就可以改端口8081

13. 私服仓库分类

私服也有自己的仓库,我们放东西就是放在这个仓库里面
我们一组的人都从这里面拿东西

但是我们如果要去第三方拿资源,还要访问第三方,还是挺麻烦的,所以我们直接在私服里面创建一个仓库,这个仓库直接拷贝了中央仓库,所以我们就可以只访问私服了

我们的仓库有很多个,有是临时版的,有已经打包好的,有中央仓库,这些统一弄为一个仓库组

在这里插入图片描述
在这里插入图片描述
第三方资源就是中央仓库没有的资源

宿主仓库就是我们自己用的,代理仓库就是转递中央仓库

仓库组是小组类共享用的
宿主仓库是小组内自己用的
代理仓库是所有项目组都能用的

14. 本地仓库访问私服配置

在这里插入图片描述
这组设置是本地文件的设置

在这里插入图片描述
就是放在这里的

先配置本地仓库对私服的访问权限
在这里插入图片描述

在这里插入图片描述
但是这才是我们maven的仓库与配置
我我们来改一下

在这里插入图片描述
这样就OK了,很完美,改了配置文件,也改了本地仓库

在这里插入图片描述

然后我们找到配置文件的servers

在这里插入图片描述
然后我们去私服找id

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

我们先来创建我们专用的仓库

点那个create
在这里插入图片描述
选这个类别

在这里插入图片描述
然后直接创建

在这里插入图片描述
在这里插入图片描述
其实id就是那个仓库名

在这里插入图片描述

然后还要告诉私服的url

就是映射

在这里插入图片描述
就是这个

在这里插入图片描述
我们点入maven-public这个仓库
其实name:maven-public就是我们仓库组的id
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个区域表示的是,这个仓库管理的多少个仓库

然后我们把我们自定义的仓库拖到右边

在这里插入图片描述
然后save保存

在这里插入图片描述
在这里插入图片描述
这里的url就是地址

在这里插入图片描述
有了这两个东西,我们的本地仓库就可以和私服打交道了

15. 私服资源上传与下载

在这里插入图片描述
注意只有install的时候,只有打包的时候,我们本地应该才会有这些

然后我们要把这四个上传到私服中,要放在哪个仓库中,这个怎么告诉?
所以接下来这个配置要配置到我们的工程里面来,而不是本地仓库了

maven_00_parent:

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

这个就是id,url就在下面的下面

在这里插入图片描述

在这里插入图片描述
现在开始发布它

我们先看看私服里面有什么东西
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点进去就可以看到里面的东西了

在这里插入图片描述
啥也没有

发布到私服中我们就要用指令了
在这里插入图片描述

install是把工程打包放在本地
deploy就是发布到私服了

我们第一次操作的时候会下载很多东西

在这里插入图片描述
但是我们这个出错了

在这里插入图片描述
但是我们在发布pojo的时候出错了

因为pojo没有继承父工程

在这里插入图片描述
注意要把原来我们写的setting.xml文件修改保存一下
然后deploy一下

在这里插入图片描述
这样我们就成功了

在这里插入图片描述
这样我们里面就有东西了

snashot里面有东西
在这里插入图片描述
但是release里面没有

在这里插入图片描述

为什么呢,因为我们工程的发布版本号叫做snapshot

在这里插入图片描述
我们四个都改成release

继承父类的也写成release
在这里插入图片描述
这样就有了

我们怎么配置资源从阿里的地方镜像过来呢

在这里插入图片描述
找到maven-central这个仓库

在这里插入图片描述
它连的就是远程的仓库,换成阿里的就可以了
在这里插入图片描述
换这个就可以了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

maven我们就讲完了,后面我们开始讲springboot

相关文章:

Maven进阶

前言 我们这一节讲一下Maven 1. 分模块开发的意义 同一个程序我们按功能划分为不同的模块 同一个模块导成jar之类的&#xff0c;这样就可以共享数据了 2. 分模块开发与设计 我们以原来的ssm整合的模块来考虑 我们来把domain这个模块搞消失&#xff0c;重新制造一个模块 我们…...

【k8s】kubelet 的相关证书

在 Kubernetes 集群中&#xff0c;kubelet 使用的证书通常存放在节点上的特定目录。这些证书用于 kubelet 与 API 服务器之间的安全通信。具体的位置可能会根据你的 Kubernetes 安装方式和配置有所不同&#xff0c;下图是我自己环境【通过 kubeadm 安装的集群】中的kubelet的证…...

我们来学mysql -- 事务并发之脏写(原理篇)

事务并发之脏写 题记脏写防止脏写题记 在《事务之概念》提到事务对应现实世界的状态转换,这个过程要满足4个特性这世界,真理只在大炮射程之类,通往和平的道路,非“常人”可以驾驭一个人生活按部就班,人多起来,难免鸡飞狗跳同理现实世界的状态转换映射到数据库,满足4个特…...

AI×5G 市场前瞻及应用现状

本文为《5GAI时代&#xff1a;生活方式和市场的裂变》一书读后总结及研究。 本书的上架建议是“经营”&#xff0c;内容也更偏向于市场分析。书出版于2021年&#xff0c;现在是2024年&#xff0c;可以收集整理一些例子&#xff0c;看看书里的前瞻性5GAI应用预测&#xff0c;到…...

LLM:模拟o1的思维链实现

本文项目地址&#xff1a;https://github.com/stay-leave/enhance_llm/tree/main/like-o1 运行的流程&#xff1a; 1.输入用户消息&#xff0c;query 2.组装消息列表&#xff0c;包括系统提示词&#xff08;关键&#xff09;&#xff0c;用户消息&#xff0c;助手消息&#xff…...

vue3+vite 批量引入组件动态使用

import { ref, reactive, toRaw, markRaw, defineAsyncComponent, onMounted } from vue import type { Component } from vue// vue3vite 批量引入组件动态使用 const modules import.meta.glob<Component>(./details/*.vue) // 明确指定导入的模块类型为Component con…...

PyQt 中的无限循环后台任务

在 PyQt 中实现一个后台无限循环任务&#xff0c;需要确保不会阻塞主线程&#xff0c;否则会导致 GUI 无响应。常用的方法是利用 线程&#xff08;QThread&#xff09; 或 任务&#xff08;QRunnable 和 QThreadPool&#xff09; 来运行后台任务。以下是一些实现方式和关键点&a…...

【python使用kazoo连ZooKeeper基础使用】

from kazoo.client import KazooClient, KazooState from kazoo.exceptions import NoNodeError,NodeExistsError,NotEmptyError import json# 创建 KazooClient 实例&#xff0c;连接到 ZooKeeper 服务器 zk KazooClient(hosts127.0.0.1:2181) zk.start()# 定义节点路径 path…...

【MySQL】内置函数

MySQL中的内置函数 一、日期函数1.1 current_date函数1.2 current_time函数1.3 current_timestamp函数1.4 date_add函数1.5 date_sub函数1.6 datediff函数1.7 now函数综合使用1综合使用2 二、字符串函数2.1 charset函数2.2 concat函数2.3 length函数2.4 replace函数2.5 substri…...

机器学习面试八股总结

下面是本人在面试中整理的资料和文字&#xff0c;主要针对机器学习面试八股做浅显的总结&#xff0c;大部分来源于ChatGPT&#xff0c;中间有借鉴一些博主的优质文章&#xff0c;已经在各文中指出原文。有任何问题&#xff0c;欢迎随时不吝指正。 文章系列图像使用动漫 《星游…...

【Android Debug Bridge】adb常用指令(更新中)

adb常用指令 ADB&#xff08;Android Debug Bridge&#xff09;是一个强大的命令行工具&#xff0c;用于与连接的Android设备进行通信。 1&#xff1a;安装软件包&#xff0c;假设app安装包为apk adb install [apk]2&#xff1a;查看当前连接PC的安卓设备编号 adb devices3…...

贵州大学oj平台软工24-11-27第5次小测

题目&#xff1a;阶乘和函数 题目描述 设计一个计算阶乘和的函数&#xff0c;用于求1!2!...n!并返回结果。 其中n是函数的参数。 程序的开始部分及main函数已经写好如下&#xff1a; #include <stdio.h> double factSum(int n); int main(){ int n; scanf("…...

【GPT】代谢概念解读

以下是对代谢中分解代谢和合成代谢两个概念的深入解读&#xff0c;用简单易懂的方式展开说明&#xff1a; 1. 分解代谢&#xff08;Catabolism&#xff09; 什么是分解代谢&#xff1f; 分解代谢是身体把大分子“拆开”的过程。就像把一个三明治分解成面包片、肉片和菜叶&#…...

Flutter如何适配RTL

阿拉伯语和希伯来语等是使用的从右到左书写的文字系统。世界上估计有4.22亿人以阿拉伯语做为母语。使用从右至左的人口可以说是更多了。所以对于出海项目来说&#xff0c;是不能忽视的一部分。 RTL可以说是本地化适配中比较麻烦的一项&#xff0c;并没有多语言适配来的简单。RT…...

Java中的“接口“详解

1.接口的概念 在Java中接口可以看成是:多个类的公共规范,是一种引用数据类型 2.语法规则 接口的定义格式与类的定义格式相同,将"class"关键字换成"interface"关键字,就定义了一个接口. //接口的关键字"interface"定义了一个名称为"USB&…...

Windows 10电脑无声问题的全面解决方案

Windows 10操作系统以其强大的功能和用户友好的界面赢得了广大用户的青睐&#xff0c;但在使用过程中&#xff0c;有时会遇到电脑突然没有声音的问题。这一问题可能由多种原因引起&#xff0c;包括音频驱动程序问题、音频设置错误、系统更新冲突等。本文将详细介绍Windows 10无…...

ElasticSearch学习篇19_《检索技术核心20讲》搜推广系统设计思想

目录 主要是包含搜推广系统的基本模块简单介绍&#xff0c;另有一些流程、设计思想的分析。 搜索引擎 基本模块检索流程 查询分析查询纠错 广告引擎 基于标签倒排索引召回基于向量ANN检索召回打分机制&#xff1a;非精确打分精准深度学习模型打分索引精简&#xff1a;必要的…...

IPv6 NA RTR/SOL/OVR标志位,单播多播选择,ndppd代理和kernel配置

NA消息用单播还是多播的判断理由 单播回复&#xff08;Unicast&#xff09;&#xff1a; 如果客户端发送 RS 消息时&#xff0c;使用的是一个全局地址或链路本地地址作为源地址&#xff0c;则 RA 消息会单播回复到客户端的源地址。这种方式减少了网络中的广播流量&#xff0c;…...

LearnOpenGL 学习(入门--三角形,着色器,纹理)

你好&#xff0c;三角形 下面&#xff0c;你会看到一个图形渲染管线的每个阶段的抽象展示。要注意蓝色部分代表的是我们可以注入自定义的着色器的部分。 图形渲染管线的第一个部分是顶点着色器(Vertex Shader)&#xff0c;它把一个单独的顶点作为输入。顶点着色器主要的目的是…...

前端开发入门指南Day12:ES6进阶:面向对象的编程(Class类、继承、模块化)

今天&#xff0c;让我们探索ES6中面向对象编程的革新。想象一下&#xff0c;如果传统的JavaScript是一个手工作坊&#xff0c;那么ES6的类和模块化就是一个现代化工厂&#xff0c;让代码的组织和复用变得更加规范和高效。 一、为什么需要Class类的革新 &#x1f3af; 在ES6之…...

深入探索进程间通信:System V IPC的机制与应用

目录 1、System V概述 2.共享内存&#xff08;shm&#xff09; 2.1 shmget — 创建共享内存 2.1.2 ftok&#xff08;为shmmat创建key值&#xff09; 2.1.3 为什么一块共享内存的标志信息需要用户来传递 2.2 shmat — 进程挂接共享内存 2.3 shmdt — 断开共享内存连接 2.4…...

跨 CA 签发多个证书的 Nginx mTLS 配置

研究过用同一个 CA 签发的服务端和客户端证书的 Nginx mTLS 配置&#xff0c;本文要试验一番服务端和客户端证书由不同 CA 机构签发的情形。这是常有事&#xff0c;比如与客户间采用 mTLS 加密方式&#xff0c;需要文件交付可能是 客户端证书由甲方生成&#xff0c;发送客户端…...

CentOS7 虚拟机 双网卡绑定

一、网卡绑定模式 模式类型特点mode0round-robin&#xff08;平衡轮询策略&#xff09;基于per packet方式&#xff0c;轮询往每条链路发送报文。提供负载均衡和容错的能力&#xff0c;当有链路出问题&#xff0c;会把流量切换到正常的链路上。交换机端需要配置聚合口。mode1a…...

设计模式——方法链or流式接口

方法链或流式接口是一种编程模式或设计模式。核心思想是通过返回对象自身的应用&#xff0c;使得可以在一个表达式中连续调用多个方法。 c中实现这种模式 1.基本语法规则 &#xff08;1&#xff09;每个可链接的方法都返回对象自身的引用&#xff08;通常是*this&#xff09…...

BioDeepAV:一个多模态基准数据集,包含超过1600个深度伪造视频,用于评估深度伪造检测器在面对未知生成器时的性能。

2024-11-29, 由罗马尼亚布加勒斯特大学创建BioDeepAV数据集&#xff0c;它专门设计来评估最先进的深度伪造检测器在面对未见过的深度伪造生成器时的泛化能力&#xff0c;这对于提高检测器的鲁棒性和适应性具有重要意义。 数据集地址&#xff1a;biodeep 一、研究背景&#xff1…...

winform 程序添加API接口

假定你有这么一个winform程序&#xff0c;现在有需求开放一个接口&#xff0c;供外部调用&#xff0c;则你可以这样实现 安装需要的依赖包 Microsoft.AspNetCore.App 2.1.34 Microsoft.Extensions.Hosting 8.0.1使用线程在主窗体loading时候启动webhost publi…...

vscode 怎么下载 vsix 文件?

参考&#xff1a;https://marketplace.visualstudio.com/items?itemNameMarsCode.marscode-extension 更好的办法&#xff1a;直接去相关插件的 github repo 下载老版本 https://github.com/VSCodeVim/Vim/releases?page5 或者&#xff0c;去 open-vsx.org 下载老版本 点击这…...

jupyter-lab 环境构建

我平时用来调试各种代码的。 创建环境&#xff0c;安装库 conda create --name jupyterlab python3.12 -y conda activate jupyterlab conda install -c conda-forge jupyterlab nodejs之前用的是3.10的&#xff0c;但是最近安装的时候&#xff0c;发现3.10的python里面的jup…...

Mysql事务常见面试题 -- 事务的特性 ,并发事务问题 , undo_log和redo_log , 分布式事务

一. 事务的特性 ACID 原子性 --> 事务操作被视为一个整体 , 要么全部成功 , 要么全部失败一致性 --> 事务操作前后数据的变化是一致的隔离性 --> 事务的执行不受其他事务的影响持久性 --> 事务执行完毕会对数据永久保存 比如我们在转账的过程中 , A给B转账1000元…...

C# 线程--Thread类

目录 什么是线程&#xff1f; Thread类的定义 创建和启动线程 使用 ThreadStart 委托 使用 ParameterizedThreadStart 委托 Lambda简写 使用线程池&#xff08;ThreadPool&#xff09; 使用线程池的优点 使用 ThreadPool 的一般步骤 常用方法 Start() Join() Slee…...

【RK3588 Linux 5.x 内核编程】-内核高分辨率定时器

内核高分辨率定时器 文章目录 内核高分辨率定时器1、高分辨率定时器介绍2、高分辨率定时器API2.1 初始化定时器2.2 启动定时器2.3 停止定时器2.4 改变定时器超时时间2.5 定时器状态检查3、驱动实现4、驱动验证在前面的文章中,我们知道了如果在Linux内核中使用定时器。本文将详…...

论文阅读与源码解析:MogaNet

论文阅读与源码解析&#xff1a;MogaNet: Multi-order Gated Aggregation Network 论文地址&#xff1a;https://arxiv.org/pdf/2211.03295 GitHub项目地址&#xff1a;https://github.com/Westlake-AI/MogaNet 源码&#xff1a;https://github.com/Westlake-AI/MogaNet/blob/…...

长、宽数据表格转换

excel数据读取 使用 readxl 包读取 Excel 文件 library(readxl) 读取 Excel 文件&#xff1a; 使用 read_excel() 函数读取 .xlsx 或 .xls 格式的文件。可以选择指定工作表名或工作表索引。 # 读取 Excel 文件的默认工作表 data <- read_excel("path_to_y…...

华为 Mate 70 系列智能手机将运行不兼容 Android 的鸿蒙

华为宣布其 Mate 70 系列新智能手机将搭载不兼容 Android 的 HarmonyOS Next 操作系统。虽然是基于安卓系统的&#xff0c;但是该分叉树将正式分离。以后将不再兼容安卓系统软件。 HarmonyOS Next 可运行的应用数量仍然远远逊于 Android。华为表示 HarmonyOS Next 获得了逾 1.…...

【Halcon】 derivate_gauss

1、derivate_gauss Halcon中的derivate_gauss算子是一个功能强大的图像处理工具,它通过将图像与高斯函数的导数进行卷积,来计算各种图像特征。这些特征在图像分析、物体识别、图像增强等领域具有广泛的应用。 参数解释 Sigma:高斯函数的标准差,用于控制平滑的程度。Sigma…...

原型模式的理解和实践

引言 在软件开发中&#xff0c;我们经常需要创建具有相同属性或状态的对象。如果采用传统的构造函数或工厂模式来创建对象&#xff0c;那么每次创建对象时都需要重新设置对象的属性&#xff0c;这无疑增加了代码的冗余和复杂性。为了解决这一问题&#xff0c;原型模式&#xff…...

封装loding加载动画的请求

图片 /*** Loading 状态管理类*/ export class Loading {constructor(timer300) {this.value falsethis.timer timer}/*** 执行异步操作并自动管理 loading 状态* param {Promise|Function|any} target - Promise、函数或其他值* returns {Promise} - 返回请求结果*/async r…...

特种设备相关管理A全国通用试题

1.下列&#xff08;&#xff09;类型的起重机械的定期检验每年1次。 A.机械式停车设备 B.施工升降机 C.门式起重机 D.桅杆式起重机 答案:B 2.压力容器安全技术监察规程中所指的容积&#xff0c;应为&#xff08; &#xff09;。 A.应当扣除永久连接在压力容器内部的内件…...

ES语法(一)概括

一、语法 1、请求方式 Elasticsearch&#xff08;ES&#xff09;使用基于 JSON 的查询 DSL&#xff08;领域特定语言&#xff09;来与数据交互。 一个 ElasticSearch 请求和任何 HTTP 请求一样由若干相同的部件组成&#xff1a; curl -X<VERB> <PROTOCOL>://&l…...

反射的作用

只要不是写死在程序里的对象的创建和调用&#xff0c;都可以用反射来实现。 例如&#xff0c;依据注解或配置信息动态生成并注入对象的需求场景&#xff0c;生成动态代理的需求场景。...

KARE:知识图谱社区级检索,增强 LLM 推理能力的医疗预测框架

KARE&#xff1a;知识图谱社区级检索&#xff0c;增强 LLM 推理能力的医疗预测框架 论文大纲理解要点全流程分析核心模式解法拆解知识图谱社区检索和普通检索有什么本质区别&#xff1f;为什么要同时使用专家LLM和本地LLM&#xff1f;动态知识检索中的评分机制是如何平衡多个因…...

LabVIEW氢气纯化控制系统

基于LabVIEW的氢气纯化控制系统满足氢气纯化过程中对精确控制的需求&#xff0c;具备参数设置、过程监控、数据记录和报警功能&#xff0c;体现了LabVIEW在复杂工业控制系统中的应用效能。 项目背景 在众多行业中&#xff0c;尤其是石油化工和航天航空领域&#xff0c;氢气作为…...

数据分析案例-笔记本电脑价格数据可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

CSS函数

目录 一、背景 二、函数的概念 1. var()函数 2、calc()函数 三、总结 一、背景 今天我们就来说一说&#xff0c;常用的两个css自定义属性&#xff0c;也称为css函数。本文中就成为css函数。先来看一下官方对其的定义。 自定义属性&#xff08;有时候也被称作CSS 变量或者级…...

Linux网络——传输层

目录 1. 再谈端口号 2. UDP ① UDP 协议的报文 ② UDP 协议报头的本质 3. TCP ① TCP 缓冲区的理解 ② TCP 协议的报文 1. 16位源端口号 && 16位目的端口号 && 4位首部长度 2. 16位窗口大小 3. 32位序号 && 32位确认序号 4. 六个标记位 ③…...

2024年认证杯SPSSPRO杯数学建模A题(第一阶段)保暖纤维的保暖能力全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 A题 保暖纤维的保暖能力 原题再现&#xff1a; 冬装最重要的作用是保暖&#xff0c;也就是阻挡温暖的人体与寒冷环境之间的热量传递。人们在不同款式的棉衣中会填充保暖材料&#xff0c;从古已有之的棉花、羽绒到近年来各种各样的人造纤维。不…...

采药 刷题笔记 (动态规划)0/1背包

P1048 [NOIP2005 普及组] 采药 - 洛谷 | 计算机科学教育新生态 动态规划 0/1背包 的本质在于继承 一行一行更新 上一行是考虑前i个物品的最优情况 当前行是考虑第i1个物品的情况 当前行的最优解 来自上一行和前i个物品的最优解进行比较 如果当前装了当前物品&#xff…...

LabVIEW MathScript工具包对运行速度的影响及优化方法

LabVIEW 的 MathScript 工具包 在运行时可能会影响程序的运行速度&#xff0c;主要是由于以下几个原因&#xff1a; 1. 解释型语言执行方式 MathScript 使用的是类似于 MATLAB 的解释型语言&#xff0c;这意味着它不像编译型语言&#xff08;如 C、C 或 LabVIEW 本身的 VI&…...

大数据新视界 -- Hive 数据湖架构中的角色与应用(上)(25 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

电脑关机的趣味小游戏——system函数、strcmp函数、goto语句的使用

文章目录 前言一. system函数1.1 system函数清理屏幕1.2 system函数暂停运行1.3 system函数电脑关机、重启 二、strcmp函数三、goto语句四、电脑关机小游戏4.1. 程序要求4.2. 游戏代码 总结 前言 今天我们写一点稍微有趣的代码&#xff0c;比如写一个小程序使电脑关机&#xf…...