【MongoDB-Redis-MySQL-Elasticsearch-Kibana-RabbitMQ-MinIO】Java全栈开发软件一网打尽
“Java全栈开发一网打尽:在Windows环境下探索技术世界的奇妙之旅”
前言
全栈开发是一项复杂而令人兴奋的任务,涵盖了从前端到后端、数据库到可视化层、消息队列到文件存储的广泛领域。本文将带您深入探讨在Windows环境下进行全栈开发的过程,涵盖了Java全栈开发所需的关键技术和工具。无论您是初学者还是经验丰富的开发人员,本文都将为您提供有关如何准备开发环境、构建数据库层、开发搜索与可视化层、构建消息队列与文件存储层以及测试与部署应用程序的宝贵信息。
本文旨在向您展示如何在Windows环境下进行全栈开发,从Java开发环境的安装和配置开始,一直到API测试和应用程序部署。我们将介绍关键技术和工具,包括Java Development Kit (JDK)、IDE、Maven、Git、Docker、MongoDB、Redis、MySQL、Elasticsearch、RabbitMQ、MinIO、ApiPost和Postman等。通过这篇文章,您将学到如何构建一个强大的全栈应用程序,为您的开发之旅提供了有力的支持。
文章目录
- "Java全栈开发一网打尽:在Windows环境下探索技术世界的奇妙之旅"
- 前言
- 第一部分:环境设置和准备
- 安装Java Development Kit (JDK)
- 安装和配置IDE
- 安装和配置Maven
- 安装Git版本控制工具
- 安装Docker以便部署各种服务容器
- 第二部分:数据库层开发
- MongoDB
- docker安装
- Windows Installer
- MongoDB常用命令
- Redis
- docker安装
- Windows Installer
- Windows WSL-Ubuntu子系统
- MySQL
- docker安装
- Windows Installer
- 解压包手动配置
- 第三部分:搜索与可视化层开发
- Elasticsearch
- docker安装
- Windows Installer
- Kibana
- docker安装
- Windows Installer
- 使用Elasticsearch和Kibana建立强大的搜索和数据可视化
- 第四部分:消息队列与文件存储层开发
- RabbitMQ
- docker安装
- Windows Installer
- MinIO
- docker安装
- Windows Installer
- Windows WSL-Ubuntu子系统
- 将RabbitMQ和MinIO集成到你的应用程序中
- 第五部分:前端开发应用程序
- Vue 3 前端开发
- 步骤 1:安装 Node.js 和 Vue CLI
- 步骤 2:创建 Vue 3 项目
- 步骤 3:开发前端应用
- 步骤 4:安装 Axios(用于与后端通信)
- 步骤 5:构建前端界面
- 步骤 6:连接后端
- 第六部分:测试和部署
- API 测试和文档
- 使用 ApiPost 进行 API 测试
- 使用 Postman 进行 API 测试
- 步骤 1:创建 API 测试集合
- 步骤 2:编写测试用例
- 步骤 3:运行测试
- 步骤 4:处理错误
- 使用 Docker 进行部署
- 步骤 1:Dockerize 后端应用
- 步骤 2:构建 Docker 镜像
- 步骤 3:运行 Docker 容器
- 步骤 4:部署前端应用
- 部署全栈应用程序
- 步骤 1:创建 Docker Compose 文件
- 步骤 2:部署应用程序
- 步骤 3:访问应用程序
- 总结
第一部分:环境设置和准备
安装Java Development Kit (JDK)
为了进行Java全栈开发,您需要首先安装Java Development Kit(JDK)。以下是在Windows上安装JDK的简要步骤:
- 访问Oracle JDK下载页面。
- 下载最新版本的JDK安装程序。
- 运行安装程序,按照提示进行安装。
- 配置系统环境变量,将JDK的
bin
目录添加到系统PATH
中。
友情链接:快速入门:使用 Spring Boot 构建 Web 应用程序
安装和配置IDE
选择一个集成开发环境(IDE)来编写和调试Java代码。两个常见的选择是Eclipse和IntelliJ IDEA。
- 下载和安装Eclipse.
- 下载和安装IntelliJ IDEA.
安装和配置Maven
Maven是一个构建和项目管理工具,用于管理Java项目的依赖项和构建过程。
- 下载Maven并解压到您选择的目录。
- 配置系统环境变量,将Maven的
bin
目录添加到系统PATH
中。 - 验证Maven安装是否成功,打开命令行并运行
mvn -version
。
安装Git版本控制工具
Git是一种版本控制工具,用于管理源代码。
- 下载和安装Git.
- 打开命令行并运行
git --version
来验证Git是否正确安装。
安装Docker以便部署各种服务容器
本文主要安装手段不是Docker,这里可以跳过
Docker可以用来轻松部署各种服务容器,包括MongoDB、Redis、MySQL等。
- 下载和安装Docker Desktop for Windows.
- 启动Docker Desktop并确保它在后台运行。
第二部分:数据库层开发
MongoDB
MongoDB是一个NoSQL数据库,适用于存储非结构化数据。
docker安装
- 安装MongoDB:
docker run -d -p 27017:27017 --name mongodb mongo
- 连接MongoDB:
MongoClient mongoClient = new MongoClient("localhost", 27017);
Windows Installer
MongoDB Community Server Download
上面那个直接全部装到C盘,下面这个能选路径
以下是每个选项的一般含义:
-
完整安装: 这个选项会在您的计算机上安装所有程序功能和组件。它会占用最多的磁盘空间,但建议大多数用户选择这个选项,因为它提供了软件的全部功能,无需进行个别选择。
-
自定义安装: 这个选项允许您选择要安装的特定程序功能和组件,以及它们在计算机上的安装位置。这是为高级用户推荐的选项,他们可能有特定的偏好或需求,这样他们可以更精确地控制安装过程。
在您的情况下,如果您满意默认配置并希望安装所有功能,您可以选择"完整安装"。但是,如果您有特定的需求或只需要软件的某些组件,您可以选择"自定义安装",以根据您的需求进行安装。
此外,似乎Mongo Shell必须单独安装到Windows系统中。这意味着不论您选择"完整安装"还是"自定义安装",您可能需要单独下载并安装Mongo Shell。请确保按照提供的说明安装Mongo Shell,如果它是您安装的必要组件。
这里不要打勾!!!,我安装了一天都没装上,GUI下面的链接单独装
这是有关安装MongoDB Compass的选项。MongoDB Compass是官方的MongoDB图形用户界面工具。以下是您可以选择的操作:
-
通过点击"Install MongoDB Compass"按钮,您可以选择安装MongoDB Compass。这将自动下载并安装最新版本的MongoDB Compass到您的计算机上。
-
如果您想了解有关MongoDB Compass的更多信息,您可以点击"Learn more about MongoDB Compass here"链接,以访问 MongoDB 官方网站上的相关信息。
请根据您的需求选择适当的选项。如果您需要使用MongoDB Compass来管理MongoDB数据库,那么选择安装它可能是一个好主意。如果不需要,您可以选择取消安装。
MongoDB Compass Download (GUI)
点左下角这个>_MONGOSH
可展开终端
MongoDB常用命令
以下是一些常用的MongoDB命令,用于管理和查询MongoDB数据库:
当使用MongoDB的命令行客户端(mongo shell)时,您可以输入以下常用命令来与数据库进行交互:
连接到MongoDB:
mongo
- 介绍: 这个命令用于启动MongoDB客户端并连接到MongoDB服务器。一旦连接成功,您可以在客户端中执行其他MongoDB命令。
数据库操作:
show dbs
use <db_name>
show dbs
介绍: 用于显示当前MongoDB服务器上的所有数据库列表,包括其大小。use <db_name>
介绍: 切换到指定的数据库。如果数据库不存在,将会创建一个新的数据库。一旦切换成功,后续的操作将在该数据库中执行。
集合(Collection)操作:
show collections
db.createCollection("collection_name")
db.collection_name.drop()
show collections
介绍: 显示当前数据库中的所有集合列表。db.createCollection("collection_name")
介绍: 用于创建一个新的集合。db.collection_name.drop()
介绍: 删除指定的集合及其所有文档。
文档(Document)操作:
db.collection_name.insert({field1: value1, field2: value2})
db.collection_name.find()
db.collection_name.find({field: value})
db.collection_name.update({field: value}, {new_field: new_value})
db.collection_name.remove({field: value})
db.collection_name.insert({field1: value1, field2: value2})
介绍: 向指定的集合中插入新的文档。db.collection_name.find()
介绍: 查询指定集合中的所有文档。db.collection_name.find({field: value})
介绍: 根据条件查询集合中的文档。db.collection_name.update({field: value}, {new_field: new_value})
介绍: 更新符合条件的文档。db.collection_name.remove({field: value})
介绍: 删除符合条件的文档。
索引操作:
db.collection_name.createIndex({field: 1})
db.collection_name.createIndex({field: -1})
db.collection_name.getIndexes()
db.collection_name.dropIndex({field: 1})
db.collection_name.createIndex({field: 1})
介绍: 创建升序索引以加速查询。db.collection_name.createIndex({field: -1})
介绍: 创建降序索引以加速查询。db.collection_name.getIndexes()
介绍: 显示指定集合的所有索引。db.collection_name.dropIndex({field: 1})
介绍: 删除指定的索引。
聚合操作:
db.collection_name.aggregate([...pipeline])
- 介绍: 使用聚合框架执行复杂的数据处理操作,如筛选、分组、排序等。
备份和还原:
mongodump
mongorestore
mongodump
介绍: 用于备份整个MongoDB数据库,包括数据和索引。mongorestore
介绍: 用于还原MongoDB数据库从备份中。
用户和权限管理:
use admin
db.createUser({user: "username", pwd: "password", roles: ["role"]})
db.grantRolesToUser("username", ["role"])
use admin
介绍: 切换到admin数据库以进行用户和权限管理。db.createUser({user: "username", pwd: "password", roles: ["role"]})
介绍: 创建新的MongoDB用户。db.grantRolesToUser("username", ["role"])
介绍: 授予用户特定的角色和权限。
服务器状态和信息:
db.serverStatus()
db.version()
db.serverStatus()
介绍: 显示MongoDB服务器的状态信息,如运行时间、内存使用等。db.version()
介绍: 显示MongoDB的版本信息。
这些MongoDB命令可用于执行各种数据库管理和查询任务。每个命令都具有特定的功能,可以根据需求在命令行中使用。在生产环境中,请小心操作,并确保正确配置和权限管理以维护数据的安全性和完整性。
Redis
Redis是一个内存数据库,用于高性能数据缓存。
docker安装
- 安装Redis:
docker run -d -p 6379:6379 --name redis redis
- 连接Redis:
Jedis jedis = new Jedis("localhost", 6379);
Windows Installer
不建议,Windows版本已停止更新,最新版是2016年的
https://github.com/microsoftarchive/redis/releases
Windows WSL-Ubuntu子系统
友情链接:【WSL/WSL 2-Redis】解决Windows无法安装WSL Ubuntu子系统与Redis安装
MySQL
MySQL是一个关系型数据库管理系统。
docker安装
- 安装MySQL:
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=password mysql
- 连接MySQL:
String url = "jdbc:mysql://localhost:3306/mydb"; Connection conn = DriverManager.getConnection(url, "root", "password");
Windows Installer
https://dev.mysql.com/downloads/installer/
解压包手动配置
https://dev.mysql.com/downloads/mysql/
友情连接:
MySQL-mysql 8.0.11安装教程
MySQL的安装指南
第三部分:搜索与可视化层开发
Elasticsearch
Elasticsearch是一个强大的全文搜索引擎。
8.x 版本要求的前置配置:
● Spring Data 3, used by Spring Boot 3
● based on Spring 6 and Java 17
Spring Boot 3 + Java 17,
我们用Java 8 可选 7.10.0 版本
docker安装
- 安装Elasticsearch:
docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.0
- 连接Elasticsearch:
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));
Windows Installer
Elasticsearch 7.10.0
启动时间可能较长,报错可能是权限不足,可尝试使用powershell或管理员身份运行
Kibana
Kibana是Elasticsearch的可视化工具,用于探索和可视化数据。
docker安装
-
安装Kibana:
docker run -d -p 5601:5601 --name kibana --link elasticsearch:elasticsearch docker.elastic.co/kibana/kibana:7.0.0
-
访问Kibana:打开浏览器并访问
http://localhost:5601
。
Windows Installer
Kibana 7.10.0
启动时间可能较长,报错可能是权限不足,可尝试使用powershell或管理员身份运行
http://localhost:5601
使用Elasticsearch和Kibana建立强大的搜索和数据可视化
使用Elasticsearch来存储和检索数据,然后使用Kibana来创建仪表板、可视化和实时监控,以使数据更具信息价值。
第四部分:消息队列与文件存储层开发
RabbitMQ
RabbitMQ是一个消息队列系统,用于在应用程序之间进行异步通信。
docker安装
-
安装RabbitMQ:
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
-
连接RabbitMQ:
ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel();
Windows Installer
Downloading and Installing RabbitMQ
安装 RabbitMQ会自动弹出 Erlang/OTP下载连接,这里我们可以都下载最新的
rabbitmq-server-3.12.8.exe
Erlang/OTP 26.1.2
Erlang/OTP和RabbitMQ 版本匹配问题
安装完成后找到安装文件路径,找到 sbin 目录下,打开命令行cmd,在命令行里切换到sbin目录下,输入如下命令:rabbitmq-plugins enable rabbitmq_management(下载可视化管理界面插件)
运行成功后,打开任务资源管理器,找到rabbitmq服务右键重新启动。或者也可以,双击sbin下的rabbitmq-server.bat
可以以直接点击 http://localhost:15672 打开 RabbitMQ 的后台管理页面(默认用户名和密码都是 guest)。
MinIO
MinIO是一个开源的对象存储服务器,可用于存储大量文件和数据。
docker安装
-
安装MinIO:
docker run -d -p 9000:9000 --name minio -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" minio/minio server /data
-
连接MinIO:
MinioClient minioClient = MinioClient.builder().endpoint("http://localhost:9000").credentials("minio", "minio123").build();
Windows Installer
不建议,往后常用于Linux服务器,此处我们使用Windows WSL-Ubuntu子系统模拟服务器环境
https://min.io/download#/windows
Windows WSL-Ubuntu子系统
友情链接:【WSL/WSL 2-Redis】解决Windows无法安装WSL Ubuntu子系统与Redis安装
分布式文件存储MinIO、安装和使用
以下是在Linux系统中安装和配置MinIO的步骤,以Markdown形式进行重构:
步骤 1: 切换到 /opt
目录并创建 minio
文件夹
cd /opt
sudo mkdir -p /opt/minio
cd /opt/minio
步骤 2: 下载MinIO
使用 wget
命令下载MinIO服务器:
sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio
步骤 3: 添加可执行权限
下载完成后,添加可执行权限给 MinIO 文件:
sudo chmod +x minio
步骤 4: 创建MinIO文件存储目录和日志目录
创建MinIO文件存储目录和日志目录:
# 创建MinIO文件存储目录和日志目录
sudo mkdir -p /opt/minio/data
sudo mkdir -p /opt/minio/logs
步骤 5: 创建 run.sh
脚本
在 /opt/minio/
目录下创建一个 run.sh
脚本并编辑以下内容,然后保存。
你可以使用
nano run.sh
Ctrl+O保存,Ctrl+X退出
Ctrl+O出现这个需要按一下Enter确定
#!/bin/bash
sudo export MINIO_ROOT_USER=minio-user
sudo export MINIO_ROOT_PASSWORD=minio-pwd# 使用 nohup 启动服务,指定文件存放路径 /opt/minio/data 和设置日志文件路径 /opt/minio/logs
# 最新版本中MinIO已经区分了Console和API两个服务的端口,需要指定端口号,否则MinIO会随机生成端口号。
nohup ./minio server --address :9002 --console-address :9001 /opt/minio/data > /opt/minio/logs/minio.log 2>&1 &
这里是设置用户名和密码,你可以自己改
sudo export MINIO_ROOT_USER=minio-user
sudo export MINIO_ROOT_PASSWORD=minio-pwd
步骤 6: 赋予执行权限给脚本
sudo chmod u+x run.sh
步骤 7: 启动MinIO
启动MinIO并检查是否启动成功:
# 启动MinIO服务
sudo bash run.sh# 检查是否启动成功
ps -ef|grep minio
步骤 8: 查看MinIO日志
查看MinIO的日志文件:
# 查看日志
tail -200f /opt/minio/logs/minio.log
完成了上述步骤后,您将在Linux系统上成功安装和配置MinIO对象存储服务器,可以通过浏览器访问MinIO Console(默认端口9001)并使用您在脚本中设置的用户名和密码登录。
将RabbitMQ和MinIO集成到你的应用程序中
使用RabbitMQ实现异步消息传递,同时使用MinIO来存储和检索文件。
当涉及到前端开发,特别是使用Vue 3时,以下是一些常见的步骤和示例内容,以帮助您开始编写全栈应用程序:
第五部分:前端开发应用程序
Vue 3 前端开发
我们可以继续使用这一篇的方法,用一个自动化脚本部署环境
【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境
步骤 1:安装 Node.js 和 Vue CLI
- 安装 Node.js,它将提供npm(Node Package Manager)工具。
- 使用npm安装 Vue CLI:
npm install -g @vue/cli
步骤 2:创建 Vue 3 项目
- 使用Vue CLI创建新的Vue 3项目:
vue create my-vue-app
- 在交互式命令行中选择配置选项或接受默认配置。
步骤 3:开发前端应用
- 进入Vue 3项目目录:
cd my-vue-app
- 编写Vue组件、路由、状态管理等,构建前端应用。
示例Vue 3组件:
<template><div><h1>{{ message }}</h1><button @click="changeMessage">Change Message</button></div>
</template><script>
export default {data() {return {message: "Hello, Vue 3!"};},methods: {changeMessage() {this.message = "Message Changed!";}}
};
</script>
步骤 4:安装 Axios(用于与后端通信)
- 安装 Axios 用于进行HTTP请求:
npm install axios
- 在Vue应用中使用Axios来与后端API通信。
示例:
<script>
import axios from "axios";export default {methods: {fetchDataFromServer() {axios.get("http://localhost:5000/api/data").then(response => {console.log(response.data);}).catch(error => {console.error(error);});}}
};
</script>
步骤 5:构建前端界面
- 创建Vue组件和页面以构建前端用户界面。
示例Vue 3组件:
<template><div><h1>Frontend Page</h1><router-view></router-view></div>
</template>
步骤 6:连接后端
- 使用Axios或其他HTTP库与后端API进行通信。
axios.get("/api/data").then(response => {// 处理后端数据}).catch(error => {console.error(error);});
第六部分:测试和部署
API 测试和文档
使用 ApiPost 进行 API 测试
- ApiPost 是一款强大的在线 API 测试工具,可用于测试和调试您的后端 API。
使用 Postman 进行 API 测试
- Postman 是另一个流行的 API 测试工具,它提供了强大的功能,包括请求集合、自动化测试脚本等。
postman下载与汉化(附直接下载链接)
步骤 1:创建 API 测试集合
- 在 ApiPost 或 Postman 中创建 API 测试集合,并将所有相关的 API 请求添加到集合中。
步骤 2:编写测试用例
- 在测试集合中编写测试用例,包括请求、预期响应和断言。
步骤 3:运行测试
- 运行测试用例,检查每个请求的响应是否符合预期。
步骤 4:处理错误
- 如果测试用例失败,分析错误原因并进行修复。
使用 Docker 进行部署
步骤 1:Dockerize 后端应用
- 创建一个 Dockerfile,定义如何构建您的后端应用的 Docker 镜像。
# 基础镜像
FROM openjdk:11# 复制应用程序 JAR 文件到镜像
COPY target/your-app.jar /app.jar# 暴露应用程序的端口
EXPOSE 8080# 启动应用程序
CMD ["java", "-jar", "/app.jar"]
步骤 2:构建 Docker 镜像
- 在应用程序目录中执行以下命令来构建 Docker 镜像:
docker build -t your-app-image .
步骤 3:运行 Docker 容器
- 运行构建的 Docker 镜像作为容器:
docker run -d -p 8080:8080 --name your-app-container your-app-image
步骤 4:部署前端应用
- 类似地,您可以 Dockerize 您的前端应用,并将其部署到 Docker 容器中。
部署全栈应用程序
步骤 1:创建 Docker Compose 文件
- 创建一个 Docker Compose 文件,用于定义您的后端和前端容器服务。这个文件可以包括多个服务,例如数据库、后端应用和前端应用。
version: "3"
services:backend:image: your-backend-imageports:- "8080:8080"frontend:image: your-frontend-imageports:- "80:80"
步骤 2:部署应用程序
- 使用 Docker Compose 部署应用程序:
docker-compose up -d
- 这将启动所有定义的容器服务。
步骤 3:访问应用程序
- 您可以通过浏览器或其他客户端访问应用程序。前端应用通常会暴露在端口 80,后端应用在端口 8080。
总结
全栈开发在当今的技术领域中占据着重要地位,为了成功开发全栈应用程序,您需要掌握多种技术和工具。本文提供了一个全面的指南,从环境设置和准备开始,一直到最终的测试和部署。通过学习如何安装Java Development Kit、选择适当的IDE、使用Maven进行项目管理、使用Git进行版本控制,以及安装和配置MongoDB、Redis、MySQL、Elasticsearch、RabbitMQ和MinIO等关键步骤,您将具备开发全栈应用程序所需的知识和技能。此外,我们还介绍了如何使用ApiPost和Postman进行API测试,以及如何使用Docker进行应用程序的容器化和部署。
通过本文,您将能够以自信和熟练的方式进行全栈开发,将您的创意变成强大的应用程序,满足不断增长的技术需求。
相关文章:

【MongoDB-Redis-MySQL-Elasticsearch-Kibana-RabbitMQ-MinIO】Java全栈开发软件一网打尽
“Java全栈开发一网打尽:在Windows环境下探索技术世界的奇妙之旅” 前言 全栈开发是一项复杂而令人兴奋的任务,涵盖了从前端到后端、数据库到可视化层、消息队列到文件存储的广泛领域。本文将带您深入探讨在Windows环境下进行全栈开发的过程࿰…...

Implementing class错误解决
最近在使用IDEASmart Tomcat启动项目时,报以下错误: Injection of resource dependencies failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class根据网上结论加上我这里的原因,总共以下几个方面&#x…...

关于 国产系统UOS系统Qt开发Tcp服务器外部连接无法连接上USO系统 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134254817 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…...

初阶JavaEE(15)(Cookie 和 Session、理解会话机制 (Session)、实现用户登录网页、上传文件网页、常用的代码片段)
接上次博客:初阶JavaEE(14)表白墙程序-CSDN博客 Cookie 和 Session 你还记得我们之前提到的Cookie吗? Cookie是HTTP请求header中的一个属性,是一种用于在浏览器和服务器之间持久存储数据的机制,允许网站…...

C++入门学习(1)命名空间和输入输出
前言 在C语言和基本的数据结构学习之后,我们终于迎来了期待已久的C啦!C发明出来的意义就是填补一些C语言的不足,让我们更加方便的写代码,所以今天我们就来讲一下C语言不足的地方和在C中的解决办法! 一、命名空间 在学习…...

AI:58-基于深度学习的猫狗图像识别
🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…...

【原创】java+swing+mysql宠物领养管理系统设计与实现
摘要: 生活中,有很多被人遗弃的宠物,这些宠物的处理成为了一个新的难题。生活中也有许多人喜欢养宠物,为了方便大家进行宠物领养,提高宠物领养管理的效率和便利性。本文针对这一问题,提出设计和实现一个基…...

虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
目录 1、虚拟机Linux-Centos系统网络配置常用命令2、Docker 的常用命令2.1 安装docker步骤命令2.2 在docker容器中安装和运行mysql 2、dockerfile关键字区别(ADD/COPY,CMD/ENTRYPOINT) 1、虚拟机Linux-Centos系统网络配置常用命令 进入网络配置文件目录 cd /etc/sysconfig/ne…...

数据分析相关知识整理_--秋招面试版
一、关于sql语句(常问) 1)sql写过的复杂的运算 聚合函数,case when then end语句进行条件运算,字符串的截取、替换,日期的运算,排名等等;行列转换; eg:行列转换 SELE…...

HMM与LTP词性标注之命名实体识别与HMM
文章目录 知识图谱介绍NLP应用场景知识图谱(Neo4j演示)命名实体识别模型架构讲解HMM与CRFHMM五大要素(两大状态与三大概率)HMM案例分享HMM实体识别应用场景代码实现 知识图谱介绍 NLP应用场景 图谱的本质,就是把自然…...

Sui发布RPC2.0 Beta,拥抱GraphQL并计划弃用JSON-RPC
为了解决现有RPC存在的许多已知问题,Sui正在准备推出一个基于GraphQL的新RPC服务,名为Sui RPC 2.0。GraphQL是一种开源数据查询和操作语言,旨在简化需要复杂数据查询的API和服务。 用户目前可以访问Sui主网和测试网网络的Beta版本的只读快照…...

设计模式—结构型模式之桥接模式
设计模式—结构型模式之桥接模式 将抽象与实现解耦,使两者都可以独立变化。 在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不…...

【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题
文章目录 一、消息的堆积问题1.1 什么是消息的堆积问题1.2 消息堆积的解决思路 二、惰性队列解决消息堆积问题2.1 惰性队列和普通队列的区别2.2 惰性队列的声明方式2.3 演示惰性队列接收大量消息2.4 惰性队列的优缺点 一、消息的堆积问题 1.1 什么是消息的堆积问题 消息的堆积…...

深度优先遍历与连通分量
深度优先遍历(Depth First Search)的主要思想是首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点。当没有未访问过的顶点时,则回到上一个顶点,继续试探别的顶点,直至所有的顶点都被访问过。 下图示例的…...

Python学习笔记--类的继承
七、类的继承 1、定义类的继承 说到继承,你一定会联想到继承你老爸的家产之类的。 类的继承也是一样。 比如有一个旧类,是可以算平均数的。然后这时候有一个新类,也要用到算平均数,那么这时候我们就可以使用继承的方式。新类继…...

全自动批量AI改写文章发布软件【软件脚本+技术教程】
项目原理: 利用AI工具将爆款文章改写发布到平台上流量变现,通过播放量赚取收益 软件功能: 1.可以根据你选的文章领域,识别你在网站上抓取的文章链接进来自动洗稿生成过原创的文章,自动配图 2.同时还可以将管理的账号导入进脚本软…...

strongswan:configure: error: OpenSSL Crypto library not found
引子 在配置strongswan时,有时会遇到以下错误(其实所有需要openssl的软件configure时都有可能遇到该问题): configure: error: OpenSSL Crypto library not found 解决方法 crypto是什么呢? 是OpenSSL 加密库(lib), 这个库需要op…...

Xcode 常见错误
1. Xcode 15 编译出现以下错误 clang: error: SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a; try increasing the minimum deployment target 从…...

【JavaEE】实现简单博客系统-前端部分
文件目录: 展示: blog_list.html: <!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><t…...

首发scitb包,一个为制作统计表格而生的R包
目前,本人写的第3个R包scitb包已经正式在R语言官方CRAN上线,scitb包是一个为生成专业化统计表格而生的R包。 可以使用以下代码安装 install.packages("scitb")scitb包对我而言是个很重要的R包,我的很多想法需要靠它做平台来实现&a…...

2023-11-06 LeetCode每日一题(最大单词长度乘积)
2023-11-06每日一题 一、题目编号 318. 最大单词长度乘积二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个…...

numpy机器学习深度学习 常用函数
Python numpy(np)创建空的字符串数组、矩阵。解决数组中每个元素仅保留单个字符,无法完整填入字符串。 matrix1np.zeros(shape(31,22)).astype(np.str_) matrix1[matrix1 0.0] 1.reshape()方法 作用是将数据按照指定的维度重新组织并返回。也就是reshape&#x…...

连接器切断机维修
目录 起因 机器出现的问题排查 问题 检查 维修方法 今天也开始了设备的维修记录,今天出问题的是连接器切断器的维护! 起因 “连接器切断机坏了,有没有维修的,机器不动了,没有报警,没有断电和气管的泄漏&…...

Mysql数据库 8.SQL语言 外键约束
一、外键约束 外键约束——将一个列添加外键约束与另一张表的主键(唯一列)进行关联之后,这个外键约束的列添加的数据必须要在关联的主键字段中存在 案例 创建原则:先创建不含外键的表也就是班级表 添加外键的方式 一般使用第一…...

ERROR in static/js/xxx.js from UglifyJs Unexpected token name «currentVersion»
添加链接描述 ERROR in static/js/xxx.js from UglifyJs Unexpected token name currentVersion, expected punc 遇到这种异常, 需要运行下面脚本运行npm i -D uglifyjs-webpack-pluginbeta修改webpack.prod.conf.jsjs中引入参数const UglifyJsPlugin require(uglifyjs-webpa…...

反序列化 [网鼎杯 2020 青龙组]AreUSerialz 1
打开题目 <?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler {protected $op;protected $filename;protected $content;function __construct() {$op "1";$filename "/tmp/tmpfile";$content "Hello World!&qu…...

JWT登录校验
工作原理 下面来详细看看 UTF-8 是如何工作的,以及为什么它会根据被编码的字符具有不同的长度。 一、JWT是什么? 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程: 1、客户端使用用户名和密码请求登录 2、服务端…...

python发送企业微信群webhook消息(文本、文件)
import datetime import os import time from copy import copyimport requests from loguru import logger from urllib3 import encode_multipart_formdataclass WeiXin_Robot:def __init__(self,url: str ""):# 测试cartest_url "https://qyapi.weixin.qq.…...

高数笔记06:无穷级数
图源:文心一言 时间比较紧张,仅导图~~🥝🥝 第1版:查资料、画导图~🧩🧩 参考资料:《高等数学 基础篇》武忠祥 🐳目录 🐳常数项级数 🐋概要 &…...

Android工具栏ToolBar
主流APP除了底部有一排标签栏外,通常顶部还有一排导航栏。在Android5.0之前,这个顶部导航栏以ActionBar控件的形式出现,但AcionBar存在不灵活、难以扩展等毛病,所以Android5.0之后推出了ToolBar工具栏控件,意在取代Aci…...