Docker+Jenkinsg+Springboot流水式构建-实用篇
最近无聊想自己玩一玩devpos,方便以后接私活,或者学习,O(∩_∩)O,
以后直接安装这篇文档,傻瓜式安装,哈哈
废话不多说,直接进入实战,完成简单的搭建
1.初始化CentOS环境
1.1 关闭防火墙
sudo systemctl stop firewalld
1.2 禁用 firewalld 服务 在启动时自动运行
sudo systemctl disable firewalld
1.3 验证 firewalld 服务状态
sudo systemctl status firewalld
如果 firewalld 已经停止并且被禁用,你应该会看到类似以下的输出:
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)
测试以下网络环境
ping aliyun.com
安装完毕后,如果需要开启防火墙输入以下命令
启动防火墙
sudo systemctl start firewalld
确保 firewalld 在系统启动时自动运行
sudo systemctl enable firewalld
2.Docker安装
docker安装要求系统内核高于3.10
2.1查看内核
uname -r
2.2更新yum包
yum -y update
或者
yum install -y yum-utils device-mapper-persistent-data lvm2
如果执行报:
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
原因是:
由于 yum 无法访问 CentOS 的镜像列表,导致无法获取软件包。这可能是由于网络问题、DNS 解析失败或者 CentOS 7 的官方镜像列表已经不再维护(因为 CentOS 7 的生命周期已经结束)
解决方式:
更新镜像源,修改/etc/yum.repos.d/CentOS-Base.repo
sudo vi /etc/yum.repos.d/CentOS-Base.repo
将文件内容替换为阿里云的:
在进行任何修改之前,建议先备份原始的yum源配置文件,以便在需要时能够恢复。yum源配置文件通常位于/etc/yum.repos.d/
目录下,文件名为CentOS-Base.repo
(根据具体版本和发行版可能有所不同)。
bash复制代码
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载阿里云的yum源配置文件
有多种方法可以下载阿里云的yum源配置文件,常用的有wget
和curl
命令。以下是一个使用curl
命令下载CentOS 7阿里云源配置文件的示例:
bash复制代码
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
注意:阿里云提供的yum源配置文件版本可能随时间更新,因此建议直接访问阿里云官方镜像站点(如
http://mirrors.aliyun.com/repo/
)查找最新版本。
清理yum缓存,并生成新的缓存
sudo yum clean allsudo yum makecache
yum clean all
命令会清除所有已下载的包和头文件缓存,而yum makecache
命令则会重新生成缓存。
然后 验证 yum源是否更换成功 可以试试下载docker
sudo yum install docker-ce docker-ce-cli containerd.io -y
2.3 正式安装Docker
sudo yum remove docker
2.4 安装软件包
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.5 下载阿里云仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.6 下载docker
sudo yum install docker-ce docker-ce-cli containerd.io -y
2.7 启动docker
systemctl start docker
2.8 设置后台开机启动
sudo systemctl enable docker
2.9 验证docker服务状态
sudo systemctl status docker
如果 Docker 已经启动并且被启用,你应该会看到类似以下的输出:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since …
2.9.1 检查 Docker 版本
docker --version
2.9.2 配置docker加速镜像
2.9.2.1 创建一个/etc/docker 目录
sudo mkdir -p /etc/docker
2.9.2.2 创建一个daemon.json的加速文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
2.9.2.3 挂载到docker下
sudo systemctl daemon-reload
2.9.2.4 重启docker
sudo systemctl restart docker
问题:
docker无法启动
报 Job for docker.service failed because the control process exited with error code.
查看docker日志
systemctl status docker.service
一般都是 daemon.json 问题。
试试拉取 jenkins镜像
docker pull jenkins/jenkins
如果出现了
Using default tag: latest
Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
拉取不成功是应为国内的镜像加速基本都被墙了,无法访问。需要寻找网友搭建的镜像加速。
例如:我找到了一个 https://dockerpull.org
详情请参考:https://dockerpull.org/修改文件 /etc/docker/daemon.json 文件
{“registry-mirrors”: [“https://dockerpull.org”]}
#重载systemd管理守护进程配置文件
sudo systemctl daemon-reload
#重启 Docker 服务
sudo systemctl restart docker或者 在docker pull 时加入加速镜像网址
例如 :docker pull dockerpull.org/jenkins/jenkin
加速镜像参考:
关于Docker官方镜像仓库被墙的一些解决办法 - 我不是矿神
3. 安装docker管理面板【DPanel 】
DPanel 有两个版本,一个是标准版本,还有个 Lite 版。其中 Lite 版本中,不包含域名转发功能。即容器内不会安装 nginx 及 acme.sh 等相关组件。
Lite 版如果需要域名转发,需要借助外部工具,例如 NginxProxyManager、Lucky、宝塔、Nginx 等
本文采用的是标准版 dpanel/dpanel:latest
如果你下载不了,可以使用国内镜像:
registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:latest
需要创建挂载目录
新建文件夹 dpanel 和 子目录
mkdir -p /volume1/docker/dpanel/data
进入 dpanel 目录
cd /volume1/docker/dpanel
运行容器
docker run -d
–restart unless-stopped
–name dpanel
-p 8807:8080
-v /var/run/docker.sock:/var/run/docker.sock
-v $(pwd)/data:/dpanel
-e APP_NAME=dpanel
registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:latest
APP_NAME:dpanel :APP_NAME 请保持与 container_name 一致
安装完成后,在浏览器中输入 http://IPxx.xx.x:8807 就能看到登录界面
可以参考以下文档,都是中文的
donknap/dpanel: docker可视化管理面板
地址:https://github.com/donknap/dpanelDPanel 可视化 Docker 管理面板
地址:https://dpanel.cc/#/Docker
地址:https://dpanel.cc/#/zh-cn/install/docker
4.安装Jenkins
4.1 创建jenkins挂载目录文件夹/volume1/docker/jenkins
mkdir -p /volume1/docker/jenkins
4.2 授权目录,给/volume1/docker/jenkins 权限
chmod 777 /volume1/docker/jenkins
4.3 安装maven
处理maven安装问题
因为我们要部署的是SpringBoot,所以需要准备JDK和Maven环境
直接输入命令下载:
wget https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
创建一个maven文件夹
mkdir -p /volume1/docker/maven
然后使用命令进行解压,到对应文件夹下【-C /volume1/docker/maven】
tar -zxvf apache-maven-3.8.8-bin.tar.gz -C /volume1/docker/maven
配置maven环境
- 到maven对应的目录下设置setting文件,例如我的在 /volume1/docker/maven 下
cd /volume1/docker/maven/apache-maven-3.8.8
- 编辑setting文件
vim settings.xml
将原来的mirror删除掉,按i进入编辑
加入新的mirror 和 localRepository
<localRepository>/volume1/docker/maven/repository</localRepository><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
mirror是配置远程仓库:我们选aliyun 的仓库
localRepository 是配置本地仓库 :我们选择本地对应的目录下
创建一个仓库文件夹
mkdir -p /volume1/docker/maven/repository
注意这里的仓库文件夹需要与我们配置的localRepository路径一致,不然找不到本地的maven仓
配置环境变量
打开环境变量文件:按i编辑,进入到最后一行进行编辑
vim /etc/profile
添加配置信息:MAVEN_HOME 配置咱们的maven路径
export MAVEN_HOME=/volume1/docker/maven/apache-maven-3.8.8 export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
从新载入配置文件
source /etc/profile
测试maven安装结果
mvn -v
出现 以下内容即安装成功
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /volume1/docker/maven/apache-maven-3.8.8
Java version: 1.8.0_332, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/jre
4.4 运行启动Jenkins命令:
docker run -u root -d --restart=always --privileged=true \-p 10240:8080 -p 10241:50000 \-v /volume1/docker/jenkins:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr/bin/docker \-v /volume1/docker/maven:/usr/local/maven \-v "$HOME":/home \--name jenkins jenkins/jenkins:lts
设置容器内的用户为 root。这意味着容器将以超级用户权限运行。
-d:以后台模式(即作为后台进程)启动容器。
–restart=always:设置容器在宿主机重启后总是重新启动。
–privileged=true:以特权模式运行容器,这给予了容器更多的权限,比如可以直接访问 Docker API。特权模式绕过了某些安全限制,因此只应在必要时使用。
-p 10240:8080:映射容器的端口 8080 到宿主机的端口 10240。这意味着你可以通过访问宿主机的 10240 端口来连接到容器内的 Jenkins 服务。
-p 10241:50000:类似地,映射容器的端口 50000 到宿主机的端口 10241。这通常是用于 Jenkins 的代理或者其他需要监听外部端口的服务。
-v //volume1/docker/jenkins :/var/jenkins_home:将宿主机上的 /home/jenkins/workspace/ 目录挂载到容器内的 /var/jenkins_x 目录。这使得 Jenkins 可以在宿主机上存储工作空间数据。
-v /var/run/docker.sock:/var/run/docker.sock:将 Docker 的 Unix socket 文件从宿主机挂载到容器内,使得容器内的 Jenkins 可以管理宿主机上的 Docker 服务。
-v /usr/bin/docker:/usr/bin/docker:将宿主机上的 /usr/bin/docker 文件挂载到容器内的相同位置。虽然在特权模式下,容器内的 Docker 客户端可以连接到宿主机的 Docker 引擎,但这个选项可能是为了确保 Jenkins 能够直接访问 Docker 客户端。
-v /volume1/docker/maven:/usr/local/maven:将宿主机上的 Maven 安装目录挂载到容器内的 /usr/local/maven 目录,这样容器内的 Jenkins 可以使用宿主机上的 Maven 版本。
-v “$HOME”:/home:将宿主机用户的主目录挂载到容器内的 /home 目录。这使得 Jenkins 可以访问宿主机用户的主目录下的文件。
–name jenkins:给容器命名,便于后续管理。
jenkins/jenkins:lts:
4.5 Jenkins配置
可以参考以下博客
Jenkins+Docker+Gitee自动化项目部署上线
Docker+jenkins+Gitee自动构建部署SpringBoot项目
Jenkins + Docker + Github 自动部署-CSDN博客
基于Docker+Jenkins实现自动部署SpringBoot+Maven项目_gitee+jetkins+docker自动部署构建springboot+vue项目-CSDN博客
相关文章:
Docker+Jenkinsg+Springboot流水式构建-实用篇
最近无聊想自己玩一玩devpos,方便以后接私活,或者学习,O(∩_∩)O, 以后直接安装这篇文档,傻瓜式安装,哈哈 废话不多说,直接进入实战,完成简单的搭建 1.初始化CentOS环境 1.1 关闭防…...
华为小米苹果三星移动设备访问windows共享文件夹windows11
如果移动设备和windows电脑都在同一个局域网内,可以用移动设备访问windows11的共享文件夹 1、设置共享文件夹 2、添加everyone用户即可 3、查看ip地址 4、在华为手机上点击文件管理,里面有个网上邻居 5、正常情况下,华为手机会扫描到同一局域…...
程序执行堆栈执行模拟
所有的文件都是在硬盘(磁盘)上,调用时先调用javac指令的jdk编译成.class然后被java指令的jre送到内存中,java在内存中有自己的一片区域叫JVM,编译进来的文件首先进入方法区。 staitc的属性就是在进入内存的时候开辟了一…...
【AIGC】ChatGPT提示词Prompt助力高效文献处理、公文撰写、会议纪要与视频总结
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 💯前言💯高效英文文献阅读提示词使用方法 💯高效公文写作提示词使用方法 💯高效会议纪要提示词使用方法 💯高效视频内…...
电脑文件自动提取器介绍
1. 背景 电脑文件自动提取器是基于元神操作系统开发的一款应用级产品,其初衷是应对当下Windows系统频繁强制升级导致的系统崩溃问题,使得即使电脑系统瘫痪也能轻易提取硬盘中的文件,以免耽误工作和学习等。 2. 介绍 (1…...
Git命令大全(超详细)
Git 是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个用户之间的工作。下面是一份较为详细的 Git 命令大全,涵盖了从初始化仓库到日常使用中常见的操作。 1. 初始化与配置 设置用户信息: git config --global user.name &quo…...
Vue 3 中实现页面特定功能控制
在开发 Vue 应用时,我们经常会遇到需要在特定页面启用或禁用某些功能的情况。本文将以 A父.vue 页面为例,探讨如何在点击汇总菜单时仅在该页面生效,而在其他页面不生效的问题。 1. 利用 Vue 3 的 provide 和 inject 实现状态传递 Vue 3 提供…...
JavaScript原生深拷贝方法 structuredClone使用
structuredClone 简介 structuredClone 是现代浏览器提供的原生 JavaScript 方法,用于深拷贝对象。它可以处理各种复杂数据结构,包括嵌套对象、数组、Date、Map、Set 等,且支持循环引用。 语法 const clone structuredClone(value);value:…...
Wireshark常用功能使用说明
此处用于记录下本人所使用 wireshark 所可能用到的小技巧。Wireshark是一款强大的数据包分析工具,此处仅介绍常用功能。 Wireshark常用功能使用说明 1.相关介绍1.1.工具栏功能介绍1.1.1.时间戳/分组列表概况等设置 1.2.Windows抓包 2.wireshark过滤器规则2.1.wiresh…...
深度学习:自然语言处理
一、引言 自然语言处理作为人工智能领域的关键分支,致力于使计算机能够理解、分析和生成人类语言。近年来,随着深度学习技术的迅猛发展,自然语言处理取得了前所未有的突破,一系列创新技术和应用不断涌现,极大地推动了…...
C底层 函数栈帧
文章目录 一,什么是寄存器 二,栈和帧 前言 我们在学习c语言程序的时候,是不是有很多的疑问,如 1,为什么形参不可以改变实参 2,为什么我们编写程序的时候会出现烫烫烫......这个乱码 3,那些局…...
Linux系统编程——进程替换
目录 前言 二、进程程序替换的概念 三、进程程序替换的原理 编辑 四、为什么需要进行进程程序替换 五、如何进行进程程序替换 1、进程替换函数: 1)execl()函数 2)execv()函数 3) execlp()函数 4) execvp()函数 5)execle函数 6)ex…...
PVE中VLAN的设置要点
使用这个拓扑进行连接无法直接访问PVE PVE 设置如下: 核心重点:PVE 的 vmbr0 接口直接绑定了 enp2s0,这会导致 VLAN 流量无法正确处理,因为 PVE 没有专门为 VLAN 3 配置接口。 1.vmbr0 和 vmbr0.3 都是绑定在物理接口 enp2s0 上&…...
零基础Python学习
1.环境搭建 1.1 安装运行环境python3.13 Welcome to Python.org 1.2 安装集成开发环境PyCharm PyCharm: the Python IDE for data science and web development 1.3 创建项目 && 设置字体 2.基础语法 2.1 常量与表达式 在python中整数除整数不会优化,所…...
命令提示符窗口(CMD)控制windows操作系统
一、关于进程 1. 通过进程ID结束进程: taskkill /PID 进程ID 2. 通过进程名称结束进程 taskkill /IM 进程名称.exe 3. 强制结束进程 taskkill /F /IM 进程名称.exe 4. 结束包含特定字符串的全部进程 taskkill /IM 包含字符串* /T 5. 启动一个新的命令行窗口来运行指…...
虚幻引擎5(Unreal Engine 5)高级教程
虚幻引擎5(Unreal Engine 5)高级教程 引言 虚幻引擎5(Unreal Engine 5,简称UE5)是Epic Games推出的一款功能强大的游戏引擎,广泛应用于游戏开发、影视制作和虚拟现实等领域。UE5以其先进的图形渲染技术、…...
3DMAX星空图像生成器插件使用方法详解
3DMAX星空图像生成器插件,一键生成星空或夜空的二维图像。它可用于创建天空盒子或空间场景,或作为2D艺术的天空背景。 【主要特点】 -单击即可创建星空图像或夜空。 -星数、亮度、大小、形状等参数。 -支持任何图像大小(方形)。…...
【QNX+Android虚拟化方案】129 - USB眼图参数配置
【QNX+Android虚拟化方案】129 - USB眼图参数配置 1. 软件侧dts如何配置眼图参数 及 其对应关系2. 硬件 QNX 侧调试眼图命令2.1 High Speed USB2.0 Host2.2 Super Speed USB3.0 Host3. 硬件 Android 侧调试眼图命令基于原生纯净代码,自学总结 纯技术分享,不会也不敢涉项目、不…...
Linux内核4.14版本——ccf时钟子系统(3)——ccf一些核心结构体
目录 1. struct clk_hw 2. struct clk_ops 3. struct clk_core 4. struct clk_notifier 5. struct clk 6. struct clk_gate 7. struct clk_divider 8. struct clk_mux 9. struct clk_fixed_factor 10. struct clk_fractional_divider 11. struct clk_multiplier 12…...
服务器遭受DDoS攻击后如何恢复运行?
当服务器遭受 DDoS(分布式拒绝服务)攻击 后,恢复运行需要快速采取应急措施来缓解攻击影响,并在恢复后加强防护以减少未来攻击的风险。以下是详细的分步指南: 一、应急处理步骤 1. 确认服务器是否正在遭受 DDoS 攻击 …...
js原型、原型链和继承
文章目录 一、原型1、prototype2、constructor 二、原型链1、字面量原型链2、字面量继承3、构造函数的原型链4、Object.create5、Object.setPrototypeOf 三、继承1、构造函数继承2、原型链继承3、组合继承 四、常见链条1、Function2、Object.prototype 继承是指将特性从父代传递…...
看不见的彼方:交换空间——小菜一碟
有个蓝色的链接,先去看看两年前的题目的write up (https://github.com/USTC-Hackergame/hackergame2022-writeups/blob/master/official/%E7%9C%8B%E4%B8%8D%E8%A7%81%E7%9A%84%E5%BD%BC%E6%96%B9/README.md) 从别人的write up中了解到&…...
传奇996_38——称号系统
记住: 称号是装备,加属性的 特效是顶戴,加特效的 需要两个命令分开设置,称号和特效不关联 角色-称号栏显示的图标:由装备表字段,背包显示Looks控制,图片位置在:stab\res\private\t…...
C++:异常
---什么是异常? 异常是面向对象语法处理错误的一种方式。 ---C语言传统的处理错误的方式有哪些呢? 1.返回错误码,有些API接口都是把错误码放到errno中。 2.终止程序,比如发生越界等严重问题时,我们也可以主动调用exit…...
winScp连接Ubantu系统,访问拒绝的解决方式
一、原理分析 win10系统能够通过WinScp连接到Ubantu系统的前提是Ubantu系统开启ssh服务 二、解决步骤 1、Ubantu系统开启ssh服务 更新软件列表 sudo apt update安装OpenSSH服务器 sudo apt install openssh-server开启SSH服务 service sshd start到此,winScp…...
Oracle 建表的存储过程
建表的存储过程 下面是建表的存储过程,用途:通过不同的表,根据不同过滤条件,得到某个字段,例如neid,然后创建一个新表T,表T的表名为拼接XXXX_XXX_neid,表T的字段自行添加 xxx&…...
芯科科技率先支持Matter 1.4,推动智能家居迈向新高度
Matter 1.4引入核心增强功能、支持新设备类型,持续推进智能家居互联互通 近日,连接标准联盟(Connectivity Standard Alliance,CSA)发布了Matter 1.4标准版本。作为连接标准联盟的重要成员之一,以及Matter标…...
pandas快速解决空列表问题
在使用 Pandas 处理数据时,我们经常会遇到包含空列表(即空值或缺失值)的问题。Pandas 提供了一些非常有效的方法来处理这些空列表,使得数据清理和预处理变得更加简单和高效。 以下是一个示例,展示如何使用 Pandas 快速…...
sentinel使用手册
1.引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>2.yaml spring:cloud:sentinel:transport:dashboard: localhost:8090 #sentinel控制台地址…...
【继承】—— 我与C++的不解之缘(十九)
前言: 面向对象编程语言的三大特性:封装、继承和多态 本篇博客来学习C中的继承,加油! 一、什么是继承? 继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类…...
腾讯微众银行大数据面试题(包含数据分析/挖掘方向)面试题及参考答案
为什么喜欢使用 XGBoost,XGBoost 的主要优势有哪些? XGBoost 是一个优化的分布式梯度增强库,在数据科学和机器学习领域应用广泛,深受喜爱,原因主要在于其众多突出优势。 首先,它的精度高,在许多机器学习竞赛和实际应用中,XGBoost 都展现出卓越的预测准确性。其基于决策…...
组合数练习题——c++
题目设置: 现在有x个相同的小球,分给y个人,每个人至少分k个,请问有多少种可能的分发方法,由于结果可能较大,答案对10^97取模。 输入格式: 一行3个整数:x,y, k…...
Java:JPMS模块化开发
JPMS(Java Platform Module System)简介 为什么用JPMS? JPMS(Java 平台模块系统)是 Java 9 引入的模块化系统,也称为 Jigsaw 项目。它为 Java 提供了更精细的模块化机制,用于组织和管理代码&a…...
Spring Boot中配置Flink的资源管理
在 Spring Boot 中配置 Flink 的资源管理,需要遵循以下步骤: 添加 Flink 依赖项 在你的 pom.xml 文件中,添加 Flink 和 Flink-connector-kafka 的依赖项。这里以 Flink 1.14 版本为例: <!-- Flink dependencies --><de…...
【ruby on rails】dup、deep_dup、clone的区别
一、区别 dup 浅复制:dup 方法创建对象的浅复制。 不复制冻结状态:dup 不会复制对象的冻结状态。 不复制单例方法:dup 不会复制对象的单例方法。 deep_dup 深复制:deep_dup 方法创建对象的深复制,递归复制嵌套的对象。…...
鸿蒙开发-HMS Kit能力集(应用内支付、推送服务)
1 应用内支付 开发步骤 步骤一:判断当前登录的华为账号所在服务地是否支持应用内支付 在使用应用内支付之前,您的应用需要向IAP Kit发送queryEnvironmentStatus请求,以此判断用户当前登录的华为帐号所在的服务地是否在IAP Kit支持结算的国…...
springboot中使用mongodb完成评论功能
pom文件中引入 <!-- mongodb --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> yml中配置连接 data:mongodb:uri: mongodb://admin:1234561…...
南京仁品耳鼻喉专科医院:12月启动公益义诊月
专业医疗资源送至“家门口”!南京仁品耳鼻喉专科医院启动公益义诊月 随着2024年即将步入尾声,南京仁品耳鼻喉医院为回馈社会,提升公众健康福祉,将于12月隆重推出“三甲专家公益义诊月”活动。此次活动旨在通过汇聚众多耳鼻喉领域…...
微信小程序首页搜索框的实现教程
微信小程序首页搜索框的实现教程 前言 在现代移动应用中,搜索功能是用户获取信息的主要方式之一。对于购物小程序而言,提供一个美观且高效的搜索框,可以显著提升用户体验,帮助用户快速找到他们想要的商品。本文将详细介绍如何在微信小程序中实现一个样式优美的搜索框,包…...
Educational Codeforces Round 151 (Rated for Div. 2)
题目链接 B. Come Together 题意 输入 输出 思路 可以将B、C坐标作A的变换,将A平移至原点,然后分情况讨论: B、C两点都在轴上,具体分为同向轴和其他情况B、C两点都在象限中,具体分为相同象限、对角象限和相邻象限分别位于象限…...
第二十一天 深度学习简介
深度学习(Deep Learning,简称DL)是机器学习的一个分支,它通过构建和训练深层神经网络模型,从数据中学习和提取特征,以实现复杂任务的自动化处理和决策。以下是对深度学习的详细介绍: 一、起源与…...
mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 我们的系统应该配置哪些监控报警项? 监控报警系统如何实现自监控? java 老矣,尚能饭否ÿ…...
elementUI如何dialog对话框 不设置 点击遮罩层 自动关闭的功能
背景 用户在填写dialog对话框的时候,有时候误触 遮罩层,导致form表单直接关闭,用户的信息丢失 代码 要使对话框在点击遮罩层时关闭,您需要在 el-dialog 组件上将 close-on-click-modal 属性设置为 false。以下是更新后的代码&…...
循环神经网络:从基础到应用的深度解析
🍛循环神经网络(RNN)概述 循环神经网络(Recurrent Neural Network, RNN)是一种能够处理时序数据或序列数据的深度学习模型。不同于传统的前馈神经网络,RNN具有内存单元,能够捕捉序列中前后信息…...
LeetCode 100.相同的树
题目: 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 思路:灵神 代码: class Solution {public boolean…...
序列化与反序列化
序列化是将对象转换为可被存储或传输的格式,例如将对象转换为字节流或字符串。序列化的过程可以将对象的状态保存下来,以便在需要时可以重新创建对象。 反序列化则是将序列化的对象转换回原始的对象形式,以便可以使用和操作这些对象。 序列…...
spring boot打包fat jar
所谓fat jar就是包含所有依赖的jar以及其他开发的代码的jar包。可以通过java -jar xxx.jar直接启动运行,不需要部署到tomcat中间件就能运行。 接下来我们使用maven进行打包: (1)在需要带包的主模块的pom中添加build依赖…...
2021年美亚杯电子数据取证大赛-个人赛
资格赛-案件背景 2021年10月某日早上,本市一个名为"大路建设"的高速公路工地主管发现办公室的计算机被加密并无法开启,其后收到了勒索通知。考虑到高速公路的基建安全,主管决定报警。警方调查人员到达现场取证,发现办公…...
用 React 编写一个笔记应用程序
这篇文章会教大家用 React 编写一个笔记应用程序。用户可以创建、编辑、和切换 Markdown 笔记。 1. nanoid nanoid 是一个轻量级和安全的唯一字符串ID生成器,常用于JavaScript环境中生成随机、唯一的字符串ID,如数据库主键、会话ID、文件名等场景。 …...
泛型擦除是什么?
泛型擦除(Type Erasure)是Java编译器在编译泛型代码时的一种机制,它的目的是确保泛型能够与JAVA的旧版本(即不支持泛型的版本)兼容。泛型擦除会在编译时移除泛型类型信息,并将泛型类型替换为其非泛型的上限类型(通常是Object) 详细解释 在Java中&#…...