力扣刷题
力扣刷题基础知识1 数据结构简介
线性数据结构
数组
链表:
栈:LinkedList
addLast(E e)、removeLast()
队列:Queue
offer(E e)、poll()
非线性数据结构
树
堆
散列表
图
2 stream 流处理
中间处理
filter()
limit()
最终处理
forEach()
count()
collect()
12345Arrays.stream(new int[]{...}).max().getAsInt(); // 获取int数组最大值// 获取List<Node>中 node.val > 123的 100 个数据List<Node> list2 = list.stream().filter(a -> a.val > 123).limit(100).collect(Collectors.toList());
解题一 链表1 图书整理Ⅰ
书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书 ...
微服务
微服务
https://www.bilibili.com/video/BV1LQ4y127n4/?p=4&spm_id_from=pageDriver&vd_source=1a39594354c31d775ddc587407a55282
Ⅰ实用一 微服务治理1.1 认识微服务
1.1.1 服务架构演变
分布式架构需要考虑的问题
服务粒度
服务集群地址如何维护
服务之间如何远程调用
服务健康如何感知
微服务
微服务是一种经过良好架构设计的分布式架构方案
微服务架构特征:
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立、技术独立、数据独立、部署独立
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
1.1.2 微服务技术对比
微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo。
1.1.3 SpringCloud
Sp ...
黑马头条
黑马头条
登录管理
let tianliGPT_postSelector = '#post #article-container';
let tianliGPT_key = 'c9b7741d290063ab872e';
若依学习
若依学习
登录
前端进入页面,发送请求/captchaImage生成验证码图片与uuid返回,同时在redis中添加数据(后面的一串是uuid)
用户提交登录信息,携带uuid再次请求/login
验证码校验:根据uuid查询redis中是否存在该key,并校对key对应的value,也就是验证码的值
注意:这个验证码有时效性的
用户密码合法性校验:异步任务管理器类 AsyncManager
AsyncManager的本质:调用了scheduledExecutorService
校验密码是否匹配
关键是UserDetailsServiceImpl.loadUserByUsername()方法
记录登录信息生成token并返回
登录成功:记录token在redis中
let tianliGPT_postSelector = '#post #article-container';
let tianliGPT_key = 'c9b7741d290063ab872e';
瑞吉外卖
瑞吉外卖
项目简介
技术选型
功能架构
1 阿里云短信服务
注册阿里云
获取短信服务(需要资质验证)
导入maven
参照官方API文档
2 部署项目到linux
linux安装mysql java环境
项目打包jar
上传到linux系统
创建一个目录
1mkdir /usr/local/app
通过XShell连接linux并将jar包上传到目录中
在linux终端中启动springboot
1java -jar xxxx.jar
开启linux指定端口的防火墙
3 优化
改为后台运行
nohup命令
1234567 - 这个时候要停下来的话需要杀进程 - 先找到进程
ps -ef | grep java-jar
12345 
根据通配符获取资源
context.getResource(...)
获取配置信息
context.getEnvironment().getProperty()
发布 ...
SpringBoot
SpringBoothttps://www.bilibili.com/video/BV15b4y1a7yG/?spm_id_from=333.788.video.desc.click&vd_source=1a39594354c31d775ddc587407a55282
基础篇一 demo
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程
创建项目的时候start.spring.io 改为 start.aliyun.com
1.1 创建
四种创建方式
基于idea创建springboot
基于官网创建springboot
基于阿里云创建springboot
手工创建Maven工程修改为springboot
1.2 四个要点
parent
定义一系列常用坐标版本
定义一系列常用坐标组合
直接组合使用
spring-boot-starter-parent又继承了spring-boot-dependencies,其中包含了很多依赖的版本,就不需要用户自定定义版本,方便管理
如果是阿里云的话就直接使 ...
MyBatis-PLus
MyBatis-PLus飞书链接:https://b11et3un53m.feishu.cn/wiki/PsyawI04ei2FQykqfcPcmd7Dnsc
视频链接:https://www.bilibili.com/video/BV1Xu411A7tL?p=20&spm_id_from=pageDriver&vd_source=1a39594354c31d775ddc587407a55282
一 入门1.1 demo
引入依赖
12345<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version></dependency>
Mapper 继承BaseMapper
测试
1.2 常见注解
MP通过扫描实体类,并基于反射获取实体类信息作为数据库表信息
类名驼峰转下划线 ...
SSM
Ⅰ Spring
核心
一 Ioc1.1 概念
IOC(Inversion Of Control)控制反转
使用对象的时候,由主动new产生对象转为外部提供对象,此过程的对象创建控制权由程序转移到外部,这个思想称为控制反转
Spring提供了一个容器,称为Ioc容器,用来充当Ioc思想中的“外部”
被创建或者管理的对象在Ioc容器中统一称为Bean
DI(Dependecy Injection)依赖注入:在容器中建立Bean与Bean之间的依赖关系的整个过程称为依赖注入
目标:充分解耦
最终效果:使用对象的时候不仅可以直接从Ioc容器中获取,并且获取到的Bean已经绑定了所有的依赖关系
1.2 IOC demo
maven中导入spring坐标 spring-context
在xml文件中配置bean
<bean id = "bookDao123" class="com.itheima.dao.impl.BookDaoImpl"/>
id为给bean起的名字
class属性表示给bean定义类型(是实现类而不是接口)
...
Maven & Mybatis
Maven一 Maven1.1 基本信息
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目模型(POM)
POM:项目对象模型
作用:
项目构建
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
统一开发结构
1.2 下载与安装
环境配置
cmd运行mvn显示
表示成功
1.3 基础概念
仓库:用于存储资源,包含各种jar包
本地仓库
远程仓库
私服:部门/公司范围内的存储资源的仓库
私服不对外共享,保存知识产权
中央仓库:MAVEN团队维护
坐标:用于描述仓库中资源的位置
主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
artifactId:定义当前Maven项目名称(通常是模块名称)
version:版本号
packaging:定义项目打包方式
https://mvnrepository.com
本地仓库配置
默认在
<img src=(https://myl-mdimg.oss-cn-beijing.aliyuncs.com/TyporaImg/mav ...