自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (1)
  • 收藏
  • 关注

原创 项目技术栈-解决方案-WebRTC音视频即时通话IM技术-陌生人交友

WebRTC音视频即时通话技术整体 UI 界面概述技术框架选择1.WebRTC整体架构与运行机制2.Nodejs服务器环境配置3.房间服务器配置原理是服务器是一直在启动状态的线程,不断的从客户端(App)获取消息, 收到消息后,进行类型和发送目标判断,以发送到群组或者单聊的方式, 客户端收到消息后进行界面的展示。如果要自己...

2024-07-03 13:42:36 1136

原创 6. CORS跨域资源共享

1. 同源策略☐ 两个url是否同源,取决于三个方面:协议 + 域名 + 端口 都相同的url,就算做同源的。☐ 如果两个url不同源,则不会相互访问对方的资源。☐ 浏览器是遵守同源策略。(postman,apipost测试工具不用遵守同源策略)2. Access-Control-Allow-Origin☐ Access-...

2024-07-01 21:52:02 426

原创 5. SpringBoot高级篇

1. Spring元数据Metadata元数据:描述数据的数据。Spring中元数据相关的类,其类结构图大致如下:1.1 ClassMetadataClass代表一个类,ClassMetadata就是一个类的元数据,也就是说,ClassMetadata是用来描述一个类的方方面面的信息的。有一个Person类,如下,注意在P...

2024-07-01 21:51:54 1162

原创 4. Webpack集成各种库

1. Webpack集成Bootstrap1.1 下载bootstrap3npm i bootstrap3 -S1.2 在index.js中引入bootstrap3import $ from 'jquery'import 'bootstrap3/dist/css/bootstrap.min.css'$(function()...

2024-07-01 21:51:49 809

原创 3. SpringBoot工具篇

1. SpringBoot集成Swagger以前,是由后端渲染页面的。现在,前后端的需求越来高,前端需要灵活、炫丽的页面。后端对高并发、高可用、高性能的要求也越来越苛刻。所以前后端自然分道扬镳,各自专注于自己的领域,精益求精!在这样的前后端分离的形态之下,已经变为完全由前端渲染页面了,前端和后端唯一的联系,就是api接口的...

2024-07-01 21:51:37 585

原创 2. SpringBoot进阶篇

1. SpringBoot Web配置作为springboot web环境的配置类,必须要实现WebMvcConfigurer接口,且必须将@Configuration注解添加到类配置类上1.1 配置拦截器创建拦截器@Componentpublic class MyInterceptor implements Handle...

2024-07-01 21:51:30 1391

原创 1. SpringBoot基础篇

1. SpringBoot简介1.1 SpringBoot是什么SpringBoot不是什么新的框架,它仅仅对众多框架做好了默认的配置。 SpringBoot可以简化配置。1.2 SpringBoot主要特性a. 可以创建独立的spring应用(spring-boot-starter-web依赖中有内置的tomcat)b....

2024-07-01 21:51:21 924

原创 4

在分布式中使用Spring Security@Componentpublic class MySecurityMetadataSource implements FilterInvocationSecurityMetadataSource { @Autowired private RedisTemplate redisTe...

2024-07-01 21:50:35 343

原创 3

1. 密码加密实际项目中我们不会在数据库中存放明文密码。SpringSecurity框架中使用的PasswordEncoder要求数据库中的密码格式为:{id}password 。它会根据id得知密码的加密方式。而我们一般不会采用这种方式。所以就将PasswordEncoder替换为BCryptPasswordEncode...

2024-07-01 21:50:29 412

原创 2

1. 通过数据库进行认证和授权1.1 准备工作之前进行认证操作时,总是拿着用户提交的账户密码与内存中存放的账户密码比较,我们可以将认证的流程设计为如下图所示的过程:接下来,我们将通过数据库进行认证,如下图所示,其中蓝色部分就是要改造的部分,也就是让用户提供自定义的UserDetailsService实现类,以代替原本的In...

2024-07-01 21:50:24 265

原创 1

1. 认证和授权☐ 认证(Authentication):通过认证,可以进入系统,并且获得身份。☐ 授权(Authorization):拿着认证通过之后的身份,进一步可以获取对应的角色和权限。并进行授权:who 对 what 可以进行 how 的操作2. 搭建web环境pom.xml<?xml version="1....

2024-07-01 21:50:17 291

原创 项目助跑

1. 项目背景近几年来人口出生率、新生人口数量总体呈下滑态势,但由于人口基数较大,我国0-3岁婴幼儿群体数量依然处于较高水平。预计随着“三胎”政策的不断落实,婴幼儿群体数量将有所扩大。随着我国三胎政策的放开,中国小学生数量呈几何式增长。据不完全统计:中国拥有 3 亿适龄儿童,中等规模城市中3-6岁学前儿童有近3-5万人,7...

2024-07-01 21:49:42 326

原创 9

1、前往Gitee下载页面(https://gitee.com/y_project/RuoYi-Cloud下载解压到工作目录2、导入idea,等待依赖下载完毕3、创建数据库ry-cloud并导入数据脚本ry_2023xxxx.sql(必须),quartz.sql(可选) 4、创建数据库ry-config并导入数据脚本ry...

2024-07-01 21:49:40 950

原创 8

1. 链路追踪介绍在分布式系统中,一个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个微服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发,可能使用不同的编程语言来实现,有可能分布在几千台服务器上,横跨多个不同的数据中...

2024-07-01 21:49:37 566

原创 7

1 分布式事务 在学习分布式事务之前,务必要知道,分布式事务不可能100%完美解决问题!只能尽量提高成功概率!让这个成功概率尽量接近99.999%,为了达到这个目的,甚至加入人工。 1.1 问题star-product,IProductService,添加deductStock方法public interface IPro...

2024-07-01 21:48:59 907

原创 6

6 配置中心 6.1 配置中心介绍微服务架构下,关于配置文件的问题:配置文件相对分散。在一个微服务架构下,配置文件会随着微服务数量的增加而增加,且众多的配置文件是分散在各个独立的微服务中的,这样不好管理。配置文件无法区分环境。微服务项目可能会有多个环境,如:测试环境、开发环境、生产环境。每一个环境所使用的配置理论上都是不同...

2024-07-01 21:48:33 473

原创 5

redis主从复制当今互联网的“三高”架构:高并发、高性能、高可用。 可用性计算公式:可用性=1年内服务器的可用时间/1年的总时间 业界的目标就是保证服务的高可用,即可用性能达到99.999%。 单机redis的问题单机redis的问题很明显,如果当前的redis服务宕机了,则系统的整个缓存系统瘫痪,导致灾难性的后果。另外...

2024-07-01 21:46:56 990

原创 2.1

Redis基础数据类型Redis存放的是key-value形式的数据,其中key总是string类型,而value则分为5种类型,如下:☐ string☐ hash☐ list☐ set☐ zsetRedis通用命令通用命令适用于所有redis类型, 其实通用命令,是专门操作key的。# 心跳命令ping# 查看数据库中的...

2024-07-01 21:46:35 848

原创 3. RabbitMQ高级

1. RabbitMQ事务如何知道生产者投递的消息是否成功抵达RabbitMQ Broker呢?RabbitMQ提供了两种方式来确认☐ 事务机制☐ 发布者确认机制RabbitMQ客户端中与事务机制相关的方法有三个:☐ channel.txSelect:用于将当前的信道设置成事务模式(也可以理解为开启事务)☐ channel...

2024-07-01 21:45:30 402

原创 2. RabbitMQ进阶

1. 信道和连接 无论是生产者还是消费者都是RabbitMQ的客户端,都需要和RabbitMQ Broker建立连接,这个连接就是一个TCP连接(Connection)。一旦TCP连接被建立起来,客户端紧接着会在Connection之上创建一个信道(Channel),之后RabbitMQ处理的每个步骤都是通过信道来完成的。...

2024-07-01 21:45:24 645

原创 1. RabbitMQ基础

1. MQ介绍1.1 MQ是什么MQ(Message Queue),消息队列。是进程级别的 生产者 和 消费者 模型。 1.2 MQ的作用异步处理(异步通信)应用解耦(平台无关)流量削峰(秒杀,主要作用)日志处理给客户端快速响应1.3 MQ使用场景在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步...

2024-07-01 21:45:18 838

原创 2. Nignx常见用法

1. Nginx.conf配置文件先备份一下nginx.conf配置文件cp nginx.conf nginx.conf.bakNginx配置文件语法规则:a. Nginx的配置文件由指令与指令块构成b. 每条指令以“;”结尾,指令与参数之间以空格分隔c. 指令块以"{ }"将多条指令组织在一起d. 使用#来添加注释use...

2024-07-01 21:44:24 819

原创 1. Nginx简介​

1. Nginx简介简单来讲,Nginx就是一个服务器,它可以作为http服务器(不能做servlet容器)、反向代理服务器,也可以作为邮件代理服务器。Nginx的特点是占用内存少,并发处理能力强(nio + reactor)。Nginx的并发处理能力在同类的Web服务器中表现极好,有大量的网站使用了Nginx,如的:淘宝...

2024-07-01 21:44:11 391

原创 50Sql

50Sqlcreate database school character set "utf8mb4";use school;create table student( StuId varchar(5) primary key, StuName varchar(10) not null, StuAge int, StuSe...

2024-07-01 21:44:04 837

原创 第3章 Maven项目聚合​

第3章 Maven项目聚合在后续的开发中,我们会将项目拆分成多个子项目,这多个子项目共同协作完成一个大的整体项目,此时就必须统一这所有子项目的依赖版本。Maven父项目就是用来统一管理所有子项目的依赖版本的3.1 创建Maven父项目步骤1:步骤2:步骤3:步骤4:删除父项目的src目录,父项目只负责管理依赖,不负责编码步...

2024-07-01 21:43:12 944

原创 第2章 Maven依赖管理​

第2章 Maven依赖管理为了更加方便地使用Maven,我们在idea中使用Maven2.1 用idea创建Maven Web项目1. 创建Maven项目,勾中Create from archetype,然后指定一个插件&目标,然后点击Next2. 填写项目坐标:GAV,然后点击Next下一步3. 选择当前项目使用...

2024-07-01 21:43:05 800

原创 第1章 Maven项目构建​

第1章 Maven项目构建Maven的两个核心功能:项目构建, 依赖(jar包)管理。1.1 项目构建 在进行项目开发时,我们也会兼顾项目管理的工作,如添加依赖(jar包)、编译源码、单元测试、项目部署等操作。这一系列的操作就统称为“项目构建”1.2 Maven是什么Maven是一个项目构建工具。使用Maven可以自动化地...

2024-07-01 21:42:53 426

原创 4. 安装软件​

4. 安装软件4.1 挂载在linux中,所有的存储设备(U盘、光盘、硬盘、软盘)都必须挂载之后才能正常使用。就好像在windows中分配盘符,在linux中,把盘符叫做“挂载点”,为光盘设置挂载点的过程,称之为“挂载”。在linux中分区都是自动挂载的,其他的,诸如光盘、U盘等,都必须手动挂载。总之,可以把linux下的...

2024-07-01 21:42:14 785

原创 3. Linux基础权限​

3. Linux基础权限3.1 查看权限位数解释第1位文件类型,d表示目录,-表示普通文件,l表示软链接文件第2-4位所属用户权限,用u表示 第5-7位所属组权限,用g表示第8-10位不在root组之内的其他用户权限,用o表示第2-10位表示所有权限,用a表示取值解释rr表示可读 readww表示可写 writexx表示可...

2024-07-01 21:42:08 421

原创 2. Linux bash命令​

2. Linux bash命令Linux的用户是通过bash来与linux系统交互的,我们键入的命令,会被bash进行翻译传递给下层:2.1 Linux命令行提示符介绍Linux命令行结尾的提示符有“#”和“$”,其中 # 是超级管理员root登录后的提示符,$ 是普通用户登录后的提示符。其他提示符介绍如下:2.2 基础命...

2024-07-01 21:41:56 1307

原创 1 Linux基础​

1 Linux基础先安装VM + Linux,再讲课约翰·冯·诺依曼计算机体系由5部分组成:输入设备、运算器、控制器、存储器、输出设备。1.1 操作系统是什么操作系统(Operating System,OS)也是一个软件。它是硬件基础上的第一层软件(也就是最底层的软件),是硬件和软件沟通的桥梁。1.2 常见的操作系统1. ...

2024-07-01 21:41:48 953

原创 13. JavaScript开发技巧

1 防抖在事件过于频繁地触发时,防止频繁地响应事件:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=e...

2024-07-01 21:40:53 331

原创 12. ES6新特性(二)

1 Setlet set = new Set();set.add("周润发");set.add("周润发");set.add("周杰伦");set.add("周杰伦");set.add("双节棍");// => { '周润发', '周杰伦', '双节棍' }console.log(set);let set = new...

2024-07-01 21:40:47 257

原创 11. ES6新特性(一)

1. let 和 const示例1:var声明的变量,会自动提升。比如:// undefinedconsole.log(a);var a = 2;console.log(a);等价于:var a;// undefinedconsole.log(a);a = 2;console.log(a);在if块中通过var声明的变量,...

2024-07-01 21:40:42 421

原创 10. 对象属性

1const stu = { name: "andy", age: 62,优秀",善良",}const val = Object.getOwnPropertyDescriptor(stu, "name");/* { value: 'andy', writable: true, enumerable: true, confi...

2024-07-01 21:40:27 423

原创 9. 作用域、作用域链、闭包

1☐ [[scope]]是ES6规定的对象的私有属性,在理论上,私有属性只可以被JavaScript引擎访问☐ 尽管所有对象都有[[scope]]属性,但是该属性只对函数对象有意义☐ 在一个函数被创建的那一刻,该函数就具备了[[scope]]属性☐ 函数的[[scope]]指向了该函数的作用域链☐ 作用域链中存放的是指针,...

2024-07-01 21:40:02 289

原创 8. JavaScript预编译

1编译执行和解释执行的区别☐ 编译执行:将源代码一次性转换为机器码的过程,且机器码会被保存下来,以便于后续直接运行☐ 解释执行:将源代码一行一行地转换为机器码,转换一行运行一行,且不会保存机器码优点缺点类比解释执行开发速度快,出现严重bug的几率低执行效率低,源码必须交给用户火锅编译执行执行效率高出现严重bug的几率比解释...

2024-07-01 21:39:54 319

原创 7. 原型链

1☐ 每个函数都有一个prototype属性,指向一个对象,这个对象我们称之为函数的“原型对象”☐ 原型对象中有一个constructor属性,指向其所归属的函数function Person() {}// => { constructor: Person }console.log(Person.prototype)...

2024-07-01 21:39:49 430

原创 6. ES6模块化

1. 模块化概述传统开发模式的主要问题命名冲突:同一个网页引入的多个js文件之间,如果存在重名的变量,则会发生覆盖问题文件依赖:js文件之间无法相互引用通过模块化解决上述问题模块化就是把单独的一个功能封装到一个模块(文件)中的过程。模块之间相互隔离,但是一个模块可以通过特定的接口公开内部成员,也可以依赖别的模块2. ES6...

2024-07-01 21:39:26 520

原创 5. async & await

1. async定义的函数是同步执行的async function f1() { console.log("i am here!");}f1();console.log("end..");2. async修饰的函数本身是同步执行的,且返回值是一个Promise对象async function f1() { console....

2024-07-01 21:39:18 321

JAVA基础控制台版本演示商城项目增删改查项目(带部分源码,源码文末)

JAVA基础控制台版本演示商城项目增删改查项目(带部分源码,源码文末)

2023-12-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除