黑马头条
黑马头条
登录管理
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 ![image-20231219214540162](https://myl-mdimg.oss-cn-beijing.aliyuncs.com/TyporaImg/瑞吉外卖.assets/image-20231219214540162.png)- 这个时候要停下来的话需要杀进程 - 先找到进程
ps -ef | grep java-jar
12345 ![image-20231219215320104](ht ...
Spring高级
Spring高级https://www.bilibili.com/video/BV1P44y1N7QG?p=26&spm_id_from=pageDriver&vd_source=1a39594354c31d775ddc587407a55282
Ⅰ 容器与bean一 容器接口1.1 BeanFactory
简介
是ApplicationContext的父接口
它才是Spring的核心容器,主要的ApplicationContext的实现都组合了他的功能
功能
表面只有getBean
实际上控制反转、基本的依赖注入,直至Bean的声明周期的各种功能,都由它的实现类提供
1.2 ApplicationContext
比BeanFactory多的一些容器接口
国际化
context.getMessage("hi", null, Locale.ENGLISH)
根据通配符获取资源
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 ...
Spring
Spring一 概述1 简介
轻量级开源JavaEE框架
解决企业应用开发
IOC控制反转:把创建对象的过程交给Spring处理
AOP面向切面:不修改源代码进行功能增强
2 特点
方便解耦
AOP编程支持
方便测试
方便集成框架
方便进行事务操作
3 Spring5.x4 下载Spring
https://repo.spring.io/ui/native/release/org/springframework/spring/
5 Spring demo
引入包->创建对象->xml注解
二 IOC容器0 概念
IOC:控制反转,把对象的创建和对象之间的调用过程交给Spring管理,目的是为了降低耦合度
1底层原理
耦合度较高,通过工厂模式降低耦合度:
使用IOC再降低耦合度(UserDao变化了只需要修改xml配置)
2 IOC接口
IOC思想基于IOC容器实现,IOC容器底层就是对象工厂
Spring提供IOC容器实现的两种方式(两个接口)
BeanFactory:IOC容器的实现,Spring的内部使用接口,不提供开发人员进行使用
加载配置文件 ...
JavaWeb
JavaWeb一 数据库1.1 mysql
数据库管理系统(DBMS)
关系型数据库:由多张互连的二维表组成的数据库
优点:易维护;使用通用的sql语言操作;数据存储在磁盘,安全
1.2 sql语法
结构化查询语言(Structured Query Language)
注释:单行:# 多行:/* */
DDL:操作数据库、表等
查询:show database 数据库名
创建:create database if not exists 数据库名
删除:drop database if exists 数据库名
使用:select database() //查询当前使用的数据库 ; use 数据库名
DML:对表数据进行增删改
创建表:
123456CREATE TABLE 表名( 字段名1 数据类型1, 字段名2 数据类型2, ... 字段名n 数据类型n);
数据类型
删除表: DROP TABLE 表名
修改表:
12345ALTER TABLE 表名 RENAME TO 新表名;ALTER TABLE 表名 ADD 列名 数据类型;A ...