07 2022 档案
摘要: 1.外联和内联★ left join/right join: 特点: 主表所有的数据都显示,另外一张表中有匹配的数据有匹配的数据则显示,若无匹配的数据,该字段显示为null inner join: 特点: 查询的所有数据是满足所有条件的数据,若没有满足所有条件的数据,则结果集为空 例题: #查询
阅读全文
摘要:SQL语句各部分的执行顺序 select distinct...from t1 (left/right) join t2 on t1.xx=t2.xx where t1.xx=? and t2.xx=? group by t1.xx having ...order by ... limit .. w
阅读全文
摘要:Spring MVC拦截器 什么是拦截器 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后(还有其它特殊时机)对请求进行处理或加工的特定接口 常见面试题:过滤器和拦截器的区别 过滤器和拦截器都可以在控制器方法运行前后加入额外代码,实现aop效果 提供者不同 过滤器是由j
阅读全文
摘要:什么是Web服务器 简单来说 Web服务器就是一个能够接收http请求并作出响应的java程序 我们再二阶段编写的webServer项目其实就是我们手写的Web服务器 我们现在开发的标准SpringBoot项目启动时内置的Web服务器叫Tomcat 实际上我们业界中还有很多Web服务器,它们具备很多
阅读全文
摘要:ELK简介 什么是ELK ELK: E:Elasticsearch 全文搜索引擎 L:logstash 日志采集工具 K:Kibana ES的可视化工具 ELK是当今业界非常流行的日志采集保存和查询的系统 我们编写的程序,会有很多日志信息,但是日志信息的保存和查询是一个问题 idea控制台是临时显示
阅读全文
摘要:配置中心 什么是配置中心 所谓配置中心:将项目需要的配置信息保存在配置中心,需要读取时直接从配置中心读取,方便配置管理的微服务工具 我们可以将部分yml文件的内容保存在配置中心 一个微服务项目有很多子模块,这些子模块可能在不同的服务器上,如果有一些统一的修改,我们要逐一修改这些子模块的配置,由于它们
阅读全文
摘要:Aop面向切面编程 什么是Aop 面向切面的程序设计(Aspect Oriented Programming)又译作剖面导向程序设计 和OOP(Object Oriented Programming)一样,也是计算机开发的一种程序设计思想 一句话概括面向切面编程 就是在不修改现有程序代码的前提下,可
阅读全文
摘要:Docker 简介 Linux简介 Linux和windows一样,都是操作系统 只不过windows更易用,适合家庭和非编程人员使用 如果用作服务器,尤其是java项目的服务器,Linux会更加合适 Linux有更全面的权限系统,更安全,更稳定,速度也更快 原生Linux功能较少,有很多功能都不具
阅读全文
摘要:虚拟机基本使用 Virtualbox安装流程 RockyLinux VirtualBox清华大学个版本下载路径 https://mirrors.tuna.tsinghua.edu.cn/virtualbox/ 安装失败的同学可以尝试下载5.2.38以上的版本 VirtualBox安装过程正常,各种下
阅读全文
摘要:布隆过滤器介绍 什么是布隆过滤器 在Redis中,布隆过滤器: 防止缓存穿透 ,经常将二者联系起来 布隆过滤器能够实现使用较少的空间来判断一个指定的元素是否包含在一个集合中 布隆过滤器并不保存这些数据,所以只能判断是否存在,而并不能取出改元素 布隆过滤器常见使用场景 idea中编写代码,一个单词是否
阅读全文
摘要:消息队列(Message Queue) 软件下载 软件下载 MQ_Blog Dubbo远程调用的性能问题 Dubbo调用在微服务项目中普遍存在 这些Dubbo调用都是同步的 "同步"指:A(消费者)调用B(生产者)的服务A在发起调用后,在B返回之前只能等待 直到B返回结果后A才能运行 Dubbo消费
阅读全文
摘要:RabbitMQ 什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产
阅读全文
摘要:SpringSecurity验证规则 SpringSecurity框架登录后,==在userDetails对象中,一定会有一个权限列表 == 登录用户对象的值可能是: {"authorities":["ROLE_user"],"id":1,"userType":"USER","username":"
阅读全文
摘要:用户\角色\权限 用户是一个基本的单位 用户和角色的关系是多对多,所以要有一张保存用户和角色关系的中间表 角色也不能直接决定这个用户能做什么操作,有哪些权限, 需要再关联权限表决定 角色和权限也是多对多的关系,也要有中间表 如果项目开发的权限比较全面,可能会出现临时用户权限关系表 关于单点登录 微服
阅读全文
摘要:1.JWT数据 Json Web Token 添加数据 --> 解析数据 --> 传递数据 1.1 JWT数据处传递流程 注意:JWT数据必须携带在==请求头(Request Header==)的 Authorization 属性中 request --> Filter --> Dispatcher
阅读全文
摘要:1.Spring Security概述 Spring Security是用于解决认证与授权的框架 SpringSecurity默认要求所有的请求都是必须先登录才允许的访问 BCrypt加密算法 BCrypt优秀的加密算法工具,不可逆算法,类似于MD5 传输过程加密: 加密->解密 存储结果加密 2.
阅读全文
摘要:Redis的使用及相关API 1.作用: ==提高查询效率== 一定程度上可以减轻数据库服务器的冲击压力,从而**==保护了数据库==** //1.是否包含key redisTemplate.hasKey(key) //2.Value对象的保存及获取 redisTemplate.opsForValu
阅读全文
摘要:Redis缓存 1.配置Redis //Redis 配置文件 @Configuration public class RedisConfiguration { @Bean public RedisTemplate<String, Serializable> redisTemplate(RedisCo
阅读全文
摘要:Redis 强化 缓存淘汰策略 Redis服务器繁忙时,有大量信息要保存 如果Redis服务器内存全满,再要往Redis中保存新的数据,就需要淘汰老数据,才能保存新数据 noeviction:返回错误**(默认)** allkeys-random:所有数据中随机删除数据 volatile-rando
阅读全文
摘要:Quartz 什么是Quartz quartz:石英钟的意思 是一个当今市面上流行的==高效的任务调度管理工具== 由==OpenSymphony==开源组织开发 Symphony:交响乐 是java编写的,我们使用费时需要导入依赖即可 为什么需要Quartz 什么是任务调度 所谓任务调用,就是执行
阅读全文
摘要:Leaf 什么Leaf leaf是叶子的意思 我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统 我们可以在Github网站上下载项目直接使用 为什么需要Leaf 上面的图片中 是一个实际开发中常见的读写分离的数据库部署格式 专门进行数据更新(写)的有两个数据库节点 它们同时新增数据
阅读全文
摘要:1. PageHelper实现分页查询 Day08 1.1 PH作用: PageHelper框架可以实现我们提供页码和每页条数, 自动实现分页效果,收集分页信息 1.2 PH原理: PageHelper的分页原理就是在程序运行时, 在sql语句尾部添加limit关键字, 并按照分页信息向limit后
阅读全文
摘要:静态资源服务器 什么是静态资源服务器 我们无论做什么项目,都会有一些页面中需要显示的静态资源,例如图片,视频文档等 我们一般会创建一个单独的项目,这个项目中保存静态资源 其他项目可以通过我们保存资源的路径访问 为什么需要静态资源服务器 原因是静态资源服务器可以将项目需要的所有图片统一管理起来 当其他
阅读全文
摘要:Elasticsearch概述 什么是Elasticsearch elastic:富有弹性的 search:搜索 在计算机开发界简称ES 这个软件不是SpringCloud的组件,甚至其他语言都可以使用它 是一个java开发的软件,所以启动需要java环境变量 功能是从大量数据中根据指定的关键字搜索
阅读全文
摘要:SpringGateway 网关 奈非框架简介 早期(2020年前)奈非提供的微服务组件和框架受到了很多开发者的欢迎 这些框架和Spring Cloud Alibaba的对应关系我们要知道 Nacos对应Eureka 都是注册中心 Dubbo对应ribbon+feign都是实现微服务间调用 Sent
阅读全文
摘要:下载Seata https://github.com/seata/seata/releases https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.zip 最好能从项目经理老师处获取 Seata概述 什
阅读全文
摘要:Sentinel 介绍 什么是Sentinel Sentinel也是Spring Cloud Alibaba的组件 Sentinel英文翻译"哨兵\门卫" 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的
阅读全文
摘要:Dubbo概述 什么是RPC RPC是Remote Procedure Call的缩写 翻译为:远程过程调用 目标是为了实现两台(多台)计算机\服务器,互相调用方法\通信的解决方案 RPC的概念主要定义了两部分内容 1.序列化协议 2.通信协议 为了方便大家理解RPC,下面的图片帮助理解 上面图是老
阅读全文
摘要:Nacos注册中心 什么Nacos Nacos是Spring Cloud Alibaba提供的一个软件 这个软件主要具有注册中心和配置中心的功能 我们先学习它注册中心的功能 微服务中所有项目都必须注册到注册中心才能成为微服务的一部分 注册中心和企业中的人力资源管理部门有相似 Nacos的启动 我们要
阅读全文
摘要:服务器端项目演进 服务器初期状态 最早的服务器就是安装部署了一些静态页面 功能非常单一,只能做信息的呈现和输出 服务器动态页面 后来因为业务和技术的发展,页面连接了数据库,页面中大部分数据来自于数据库中 用户的操作可以修改数据库的内容,这样在不修改页面代码的前提下,页面中的数据可能发生变化 这样的页
阅读全文
摘要:Vant 什么是Vant Vant是一个轻量,可靠的移动端组件库,2017开源 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 课程中使用Vant 2.x版本可以浏览网站 https://youzan.githu
阅读全文
摘要:注解大全 | 注解 | 解释 | | | | | @Configuration | 添加在类的声明之前,表示此类是配置类,会自动执行配置类中的@Bean方法,并解读配置类上的其它注解 | | @Bean | 添加在配置类中用于创建对象的方法之前,使得Spring框架自动调用此方法,并管理此方法返回的
阅读全文
摘要:Spring Security + JWT 此前,在处理登录的业务中,当视为登录成功时,返回的字符串并不是JWT数据,则应该将此数据改为必要的JWT数据。 @Service public class AdminServiceImpl implements IAdminService { // 原有其
阅读全文
摘要:1. 关于用户身份认证与授权 Spring Security是用于解决认证与授权的框架。 在根项目下创建新的csmall-passport子模块,最基础的依赖项包括spring-boot-starter-web与spring-boot-starter-security(为避免默认存在的测试类出错,应
阅读全文
摘要:使用Redis缓存数据 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库。 通常,应用Redis的场景有: 高频查询,例如:热搜列表、秒杀 改变频率低的数据,例如:商品类别 一旦使用Redis,就会导致Redis和数据库中都存在同样的数据,当数据发生变化时,可能
阅读全文
摘要:13. 类别管理--根据id查询类别详情--持久层 13.1. 规划SQL语句 本次需要执行的SQL语句大致是: select * from pms_category where id=? 关于字段列表,应该包括: id, name, parent_id, depth, keywords, sort
阅读全文
摘要:10. 基于Spring JDBC的事务管理(续) 当需要方法是事务性的,可以使用@Transactional注解,此注解可以添加在: 接口 会使得此接口的实现类的所有实现方法都是事务性的 接口中的抽象方法上 会使得此接口的实现类中,重写的此方法是事务性的 只作用于当前方法 如果接口上也配置了此注解
阅读全文
摘要:8. 类别管理--添加类别--持久层 8.1. 配置 续前日,无新增 8.2. 规划需要执行的SQL语句 续前日,无新增 8.3. 接口与抽象方法 此前需要执行的SQL语句大致是: select id from pms_category where name=?; 在csmall-pojo的根包下创
阅读全文
摘要:1. 关于此项目 此项目是一个自营性质电商类型的项目。 当前目标是设计后台管理相关功能。 2. 关于项目的开发流程 开发项目的标准流程应该有:需求分析、可行性分析、总体设计、详细设计等。 建议课后学习《软件工程》。 在具体开发时,应该先创建数据库、数据表,然后创建项目进行开发。 3. 创建数据库与数
阅读全文
摘要:Mabatis 框架 Ⅰ.关于Mabatis 对数据库中的数据进行访问的框架 ==数据库执行过程==: 连接数据库-->准备好SQL-->发送SQL语句-->执行语句-->获取结果-->关闭 1.Mabatis工程创建 创建流程了解即可 1.创建maven项目 可以更方便的管理依赖项(下载依赖项和关
阅读全文
摘要:1. 关于Spring Boot Spring Boot是Spring官方的一个产品,其本质上是一个基于Maven的、以Spring框架作为基础的进阶框架,很好的支持了主流的其它框架,并默认完成了许多的配置,其核心思想是“约定大于配置”。 2. 创建Spring Boot工程 在IntelliJ I
阅读全文
摘要:Spring Test Ⅰ.主要解决的问题 使用SpringTest前 手动加载Sping配置 手动从Spring容器中获取对象 使用SpringTest后 只需要通过注解指定Spring配置类 在Spring容器中的对象均可自动装配 通过@Sql等注解,对数据库编程提供了更好的支持 Ⅱ.Sprin
阅读全文
摘要:Spring MVC框架-02 Ⅰ.RESTful基础 是一种设计风格和开发方式 1.get和post请求区别: | get | post | | | | | 获取请求 | 上传请求 | | 请求参数在地址栏URL | 请求参数在请求体里面 | | URL长度有限制;保密性不好 | 请求体长度没有限
阅读全文
摘要:Spring MVC框架-01 Ⅰ.接收客户端请求 1. 关于Spring MVC框架 Spring MVC是基于Spring框架基础之上的 作用: 接收请求,响应结果,处理异常 主要解决了后端服务器接收客户端提交的请求,并给予响应的相关问题 2. 依赖项 spring-webmvc javax.s
阅读全文
摘要:Spring框架基础知识 1.Spring 框架作用 主要解决了创建对象和管理对象的问题. 自动装配机制 2.Spring 框架 (Spring容器,JavaBean容器,Bean容器,Spring容器,IOC容器) 容器: 只要有需要都可以找它去拿,叫容器 3.依赖关系: 类与类之间的是有依赖关系
阅读全文
摘要:day01 Sql-表_库 数据库 l 学习数据库主要学习的是如何对数据进行增删改查操作. SQL Structured Query Language: 结构化查询语言, 通过此语言让程序员和数据库软件进行交流 刘德华 30 5000 insert into emp values("刘德华",30,
阅读全文
摘要: 第三阶段课程介绍: web前端 l 数据库 l SpringBoot Web前端-HTML l HTML作用: 负责搭建页面结构和内容 (盖房子) l 学习HTML主要学习的就是有哪些标签 文本相关标签 l h1-h6 文本标题, 特点: 独占一行, 自带上下间距, 字体加粗 l p 段落标签,
阅读全文
摘要:# JAVA常见异常 Java.io.NullPointerException null 空的,不存在的 NullPointer 空指针 空指针异常,该异常出现在我们操作某个对象的属性或方法时,如果该对象是null时引发。 String str = null; str.length();//空指针
阅读全文
摘要:java反射机制 反射是java中的动态机制,它允许我们在程序运行期间再确定类的实例化,方法的调用,属性的调用等,而不是传统意义上的在编码期间确定。 因此,反射可以大大的提高代码的灵活度,但是随之而来的是更多的系统开销和较慢的运行速度,因此不能过度的依赖反射。 Class类 Class的每一个实例用
阅读全文
摘要:Map 查找表 Map体现的结构是一个多行两列的表格,其中左列称为key,右列称为value. Map总是成对保存数据,并且总是根据key获取对应的value.因此我们可以将查询的条件作为key查询对应的结果作为value保存到Map中. Map有一个要求:key不允许重复(equals比较的结果)
阅读全文
摘要:集合的排序 java.util.Collections类 Collections是集合的工具类,里面定义了很多静态方法用于操作集合. Collections.sort(List list)方法 可以对List集合进行自然排序(从小到大) package collection; import java
阅读全文
摘要:集合(续) 集合间的操作 集合提供了如取并集,删交集,判断包含子集等操作 package collection; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; /** * 集合间的
阅读全文
摘要:聊天室(续) 实现服务端发送消息给客户端 在服务端通过Socket获取输出流,客户端获取输入流,实现服务端将消息发送给客户端. 这里让服务端直接将客户端发送过来的消息再回复给客户端来进行测试. 服务端代码: package socket; import java.io.*; import java.
阅读全文
摘要:使用多线程实现多客户端连接服务端 流程图 服务端代码改造: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.In
阅读全文
摘要:java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的读写操作完成与服务端的数据交互 java.net.ServerSocket ServerSocket
阅读全文
摘要:缓冲字符流 缓冲字符输入流:java.io.BufferedReader 是一个高级的字符流,特点是块读文本数据,并且可以按行读取字符串。 package io; import java.io.*; /** * 使用java.io.BufferedReader按行读取文本数据 */ public c
阅读全文
摘要:对象流 java.io.ObjectOutputStream和ObjectInputSteam 对象流是一对高级流,在流连接中的作用是进行对象的序列化与反序列化。 对象序列化:将一个java对象按照其结构转换为一组字节的过程 对象反序列化:将一组字节还原为java对象(前提是这组字节是一个对象序列化
阅读全文
摘要:JAVA IO java io可以让我们用标准的读写操作来完成对不同设备的读写数据工作. java将IO按照方向划分为输入与输出,参照点是我们写的程序. 输入:用来读取数据的,是从外界到程序的方向,用于获取数据. 输出:用来写出数据的,是从程序到外界的方向,用于发送数据. java将IO比喻为"流"
阅读全文
摘要:File类 File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径) 使用File可以做到: 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等 2:创建和删除文件或目录 3:访问一个目录中的子项 但是File不能访问文件数据. public
阅读全文