尚庭公寓开发(二)

任何二进制和子网掩码进行一个与运算 得到是子网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==)

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值