单体项目技术来自尚硅谷:
https://www.bilibili.com/video/BV1At421K7gP/?spm_id_from=333.337.search-card.all.click&vd_source=eb2341710c995d8261ecc99fdd066ba7

1.Typora的使用

image

用的其实就跟博客园写记一样的markdown形式 但我是习惯于win自带的记事本或是直接博客园
但是学学这个软件也挺好 养成写笔记的形式总是强于记忆的
关于破解参考:https://blog.csdn.net/qjkewdmgkq/article/details/139335063 Typora破解


2.Xshell和Xftp的使用

因为 此项目真正使用到了虚拟机的环境测试项目
那自然离不开远程连接软件Xshell和传递文件Xftp
关于使用上手很简单(ps:其实就知道一个 Ctrl+shift+c/v 复制粘贴就好)
正好现在虚拟机或是这几个软件都已开源使用

image
image


3.很很重要的就是Linux的学习 这个从来没有重视过的学习

damn 我之前写过的笔记误删了 其实也就是简单一些Linux常用的命令和一些操作
我简单阐述几点:
1.快照(类似于可以后悔)

image

2.常用的命令:

  1. pwd(print working directory)

    • 作用

      打印当前目录的绝对路径

    • 基本语法

      pwd

    • 案例实操

      显示当前工作目录的绝对路径

      [root@localhost ~]# pwd
      /root
  2. ls(list)

    • 作用

      列出目录内容

    • 基本语法

      ls [选项] [目录或是文件]

    • 选项说明

      选项 功能
      -a 全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来
      -l 使用较长(详细)的格式列出信息,包含文件的属性与权限等等数据
  3. cd(change directory)

    • 作用

      切换路径

    • 基本语法

      cd [参数]

    • 参数说明

      参数 功能
      cd 绝对路径 切换路径
      cd 相对路径 切换路径
      cd ~或者cd 回到自己的家目录
      cd - 回到上一次所在目录
      cd .. 回到当前目录的上一级目录
  4. mkdir(Make Directory)

    • 作用

      创建目录

    • 基本语法

      mkdir [选项] 要创建的目录

    • 选项说明

      选项 功能
      -p 创建多层目录
  5. cp(copy)

    • 作用

      复制文件或目录

    • 基本语法

      cp [选项] source dest

    • 选项说明

      选项 功能
      -r 递归复制整个文件夹
    • 参数说明

      参数 功能
      source 源文件
      dest 目标文件
  6. rm(remove)

    • 作用

      移除文件或者目录

    • 基本语法

      rm [选项] deleteFile

    • 选项说明

      选项 功能
      -r 递归删除目录所有内容
      -f 强制删除,不提示用户进行确认
  7. mv(move)

    • 作用

      移动或重命名文件

    • 基本语法

      • 移动文件

        mv 源文件 目标目录
      • 重命名

        mv 源文件 目标文件
  8. cat

    • 作用

      查看文件内容

    • 基本语法

      cat [选项] 文件

    • 选项说明

      选项 功能描述
      - n 显示所有行的行号,包括空行
  9. tail

    • 作用

      输出文件尾部内容

    • 基本语法

      • tail 文件(功能描述:查看文件后10行内容)
      • tail -n 5 文件(功能描述:查看文件后5行内容,5可以是任意行数)
      • tail -f 文件(功能描述:实时追踪该文档的所有更新)
    • 选项说明

      选项 功能
      -n<行数> 输出文件尾部n行内容
      -f 显示文件最新追加的内容,监视文件变化

3.网络的有关配置
参考之前写过的:https://www.cnblogs.com/gaodiyuanjin/p/18551680


4.MinIO的使用

类似于阿里云的oss存储服务

image
image

如果之前学过那个苍穹外卖项目 这个大致一样 开源 也是往“桶”里云存储东西
image


5.MyBatis Plus的复习

真是学得快忘得快 真正ssm项目 我觉得应该抛弃MyBatis 而去使用Plus可以省略很多
简单来阐述一下:

  1. 实体类entity
点击查看代码
package com.example.gao.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@TableName("user")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField("name")
private String name;
@TableField("age")
private Integer age;
@TableField("email")
private String email;
}
  1. mapper接口
点击查看代码
package com.example.gao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.gao.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
@Mapper
@Component
public interface UserMapper extends BaseMapper<User> {
}
  1. service业务接口
点击查看代码
package com.example.gao.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.gao.entity.User;
public interface UserService extends IService<User> {
}
  1. serviceImpl业务实现
点击查看代码
package com.example.gao.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.gao.entity.User;
import com.example.gao.mapper.UserMapper;
import com.example.gao.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

关于测试有很多简单的增上改查 都已经有了 直接去使用 省去我们一些xml的sql写

例如:
package com.example.gao.mapper;
import com.example.gao.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class UserMapperTest {
@Autowired
UserMapper userMapper;
//增刪改查
@Test
void cha() {
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
@Test
void zeng() {
User user = User.builder()
.name("高远")
.age(22)
.email("asdasdasd")
.build();
userMapper.insert(user);
}
@Test
void gai() {
User user = userMapper.selectById(1);
user.setName("约翰");
userMapper.updateById(user);
}
@Test
void shan() {
userMapper.deleteById(1);
}
}

这里要说一个最常用 也是新知识

条件构造器Wrapper 用于构建复杂的数据库查询条件
QueryWrapper:专门用于构造查询条件,支持基本的等于、不等于、大于、小于等各种常见操作
它允许你以链式调用的方式添加多个查询条件,并且可以组合使用 and 和 or 逻辑

UpdateWrapper:用于构造更新条件,可以在更新数据时指定条件
与 QueryWrapper 类似,它也支持链式调用和逻辑组合
使用 UpdateWrapper 可以在不创建实体对象的情况下,直接设置更新字段和条件。
还有分页查询也需要学习
具体学习参考:官网 https://baomidou.com/getting-started/


6.缓存Redis

Redis基于内存的键值对结构数据库 Mysql存储在磁盘上 优点内存存储读写性能高
redis.windows.conf配置文件中设置密码 # requirepass (密码foobared)
Redis常用命令:
一:字符串操作命令
SET Key value 设置指定key值
GET Key 获取指定key值
SETEX key seconds value 设置指定key值 并设置过期时间秒
SETNX key value 只有在key不存在时设置key的值
二:哈希操作命令
HSET key field value 将哈希表key字段field的值设为value
HGET key field 获取存储在哈希表中指定字段的值
HDEL key field 删除存储在哈希表中的指定字段
HKEYS key 获取哈希表所有字段
HVALS key 获取哈希表中所有值
三:列表操作命令(有序不唯一)
LPUSH key value1 [value2] 将一个或多个值插入到列表头部
LRANGE key start stop 获取列表指定范围内的元素
RPOP key 移除并获取列表最后一个元素
LLEN key 获取列表长度
四:集合操作命令(无序唯一)
SADD key member1 [member2] 向集合添加一个或多个成员
SMEMBERS key 返回集合中的所有成员
SCARD key 获取集合的成员数
SINTER key1 [key2] 返回给定所有集合的交集
SUNION key1 [key2] 返回所有给定集合的并集
SREM key member1 [member2] 删除集合中一个或多个成员
五:有序集合操作命令(有序唯一 关联一个double分数)
ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员
ZRANGE key start stop [withscores] 通过索引区间返回有序集合中指定区间内的成员
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量increment
ZREM key member [member....] 移除有序集合中的一个或多个成员
六:通用命令
KEYS pattern 查找所有符合给定模式的key
EXISTS key 检查给定key是否存在
TYPE key 返回key所存储的值的类型
DEL key key存在时删除key
RedisTemplate封装了Redis进行交互的各种方法
RedisTemplate和命令行操作序列化不同 会导致产生的key不一致
使用StringRedisTemplate来解决

7.接口业务实现

这个没啥好说的 增删改查业务
image


8.登陆板块

登录模块:
两种常用的认证方案:
.session
在服务器端创建一个session对象将标识保存在这个对象中
若用户数量多 就会使服务端受压
借此使用负载均衡(类似中转站) 将各种不同请求发给相应的多台服务器(集群)
此处要使用登陆共享(即将登录的信息存储在Redis中)
.Token(JWT令牌)
登陆状态保存到客户端 服务器无须保存
客户端发起的每个请求自身携带登陆状态
JWT是一种轻量级的安全传输方式 为一个字符串
由三部分组成 .分隔 header payload(负载) signature(签名)
例如:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJ1c2VybmFtZSI6Ind3dy5iZWpzb24uY29tIiwic3ViIjoiZGVtbyIsImlhdCI6MTczNDUwMDYzNywibmJmIjoxNzM0NTAwNjM3LCJleHAiOjE3MzQ1ODcwMzd9.
HdeGpO61iaiN7ODgpNrYIXuMIJIpHJ5e6cc4UsPDd7g

其实不是什么什么项目做的多厉害多广度就好 最重要的是打好基础那些东西
还有就是 永远保持高度的愿意不断学习能力 那样就可以干成任何事

posted on   不爱美女爱辣条  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?



点击右上角即可分享
微信分享提示