
任何二进制和子网掩码进行一个与运算 得到是子网ip的话就是属于子网ip的范围
任何数字和一做与运算都是他本身 和0做运算都是0
所以要得到子网ip的话他的前面必须是 192.168.200 最后是0-255之间的范围 0不能取 0是子网本身 255也不能用 因为他是广播地址 真正可以使用 的范围是1-254


使用本机可以接受到虚拟机了
视频中会发生这种情况

是由于防火墙没有关掉 由windows访问虚拟机的话可以直接ping 而虚拟机要直接pingwindows需要关闭防火墙

这样就可以 了 这样就能保证两者网络是互通的了

使用/etc/sysconfig/network-scripts/ifcfg-ens33这个命令行





接着输入这些命令 就变成我们调试的端口了
接着把finalshell也接着改了




开发是server01 部署是server02
部署mysql

wget https://dev.mysql.com/get/mysql80-community-release-el7-9.noarch.rpm

rpm -ivh mysql80-community-release-el7-9.noarch.rpm


接着开始下载mysql 但是直接用yam下载的话他的仓库在国外下载的比较慢
我们可以配置一个国内的镜像
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-$basearch/

本人虚拟机到这已经卡透了 不想继续下去了 等过两天在继续 52跳过
部署redis





miniio






mybatis plus




只需要在创建好的mapper接口中让他继承basemapper方法 就可以直接调用增删改查

他的mysql语句是由mybatisplus来进行提供的 我们让他把相应的sql语句打印出来
配置一下
然后就会往出打印了

测试类


看文档 其中的saveorupdate方法是 存在即更新 不存在即添加





这样写有提示 可以提升开发效率 减少低级错误 比如敲错

分页插件




这里配置的是要使用的数据库的类型


64
![]()

自定义mapper中


mybatisx插件 可以快速生成entity mapper mapper。xml service serviceimpl
minio快速入门



用这个代码去看虚拟机的minio启动起来了没


versioning是万一不小心删除了数据可以恢复
object locking是在删除的时候加锁
quota是限制桶的数据大小

通过这个可以访问到图片

访问的时候被拒绝 了 是因为没有访问的权限






public class App {
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException {
try {
//构造MinIO Client
MinioClient minioClient = MinioClient.builder()
.endpoint("http://192.168.10.101:9000")
.credentials("minioadmin", "minioadmin")
.build();
//创建hello-minio桶
boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("hello-minio").build());
if (!found) {
//创建hello-minio桶
minioClient.makeBucket(MakeBucketArgs.builder().bucket("hello-minio").build());
//设置hello-minio桶的访问权限
String policy = """
{
"Statement" : [ {
"Action" : "s3:GetObject",
"Effect" : "Allow",
"Principal" : "*",
"Resource" : "arn:aws:s3:::hello-minio/*"
} ],
"Version" : "2012-10-17"
}""";
minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket("hello-minio").config(policy).build());
} else {
System.out.println("Bucket 'hello-minio' already exists.");
}
//上传图片
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("hello-minio")
.object("公寓-外观.jpg")
.filename("D:\\workspace\\hello-minio\\src\\main\\resources\\公寓-外观.jpg")
.build());
System.out.println("上传成功");
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
}
}
}
redis

redis把数据保存到内存上的话 会由于断电导致数据的丢失 但是他还将数据备份到了硬盘上 这样就可以在故障发生的时候进行一个恢复

redis存储在内存 mysql存储在磁盘中

ping后面有一个可选参数message 写上test就返回test






计数器的这个场景就是 比如要统计一个视频的播放量 可以将视频id作为key 将视频的播放量作为v


最后的效果是cba









计算共同关注的好友 就是用sinter
spop 就是随机抽奖




由于hash和java对象结构差不多 可以用来做缓存






database就是0-16 咱们默认是0


出现的问题


主要就是redistemplate和客户端使用的序列化方式不同



项目完整的pom.xml文件如下
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.atguigu</groupId>
<artifactId>hello-knife4j</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hello-knife4j</name>
<description>hello-knife4j</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
```
.
这个代码主要是为了对接口进行分组
在user下的分组到用户信息管理 。。。
@Configuration
public class Knife4jConfiguration {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(new Info()
.title("hello-knife4j项目API")
.version("1.0")
.description("hello-knife4j项目的接口文档"));
}
@Bean
public GroupedOpenApi userAPI() {
return GroupedOpenApi.builder().group("用户信息管理").
pathsToMatch("/user/**").
build();
}
@Bean
public GroupedOpenApi systemAPI() {
return GroupedOpenApi.builder().group("产品信息管理").
pathsToMatch("/product/**").
build();
}
}
4. **启动项目**
启动SpringBoot项目,访问http://localhost:8080/doc.html,观察接口文档。


Tag是注解

@operation(summary==)



![[数据集][目标检测]躺坐站识别检测数据集VOC+YOLO格式9488张3类别](https://i-blog.csdnimg.cn/direct/5a6665d6dfe14248b321a442cacf2325.png)

















