自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 什么是 RBAC 模型?

前言RBAC(Role-Based Access Control),基于角色的访问控制,现在主流的权限管理系统的权限设计都是 RBAC 模型,或者是 RBAC 模型的变形。我们需要思考一个问题:为什么要做权限的管理?我的理解是在每一个系统中,每个用户所拥有的权限是不一样的,例如一个数据表,管理员可以修改、增加、查看等操作,而普通用户只能查看。所以如何进行用户权限的设计,就是我们需要考虑的问题了。RBAC 模型是什么RBAC(Role-Based Access Control),基于角色的访问控制

2021-12-29 20:48:59 21707 3

原创 Java 实现 LRU 算法

力扣题目:146. LRU 缓存LRU 是什么?最近最少使用算法。一个队列,将最近使用的元素放到队列的头部,当队列长度不够时,移除队列的最后一个元素,也就是最近最少使用的元素。解法 1:继承 LinkedHashMap投机取巧解法(最好还是自己实现),利用 Java 的 LinkedHashMap 已经实现好的方法,所以直接继承 LinkedHashMap 为父类即可。有兴趣可以自己阅读 LinkedHashMap 源码。重点关注这三个方法:afterNodeAccess():访问元素之后,

2021-12-28 21:48:55 632

原创 《MySQL 实战 45 讲》学习笔记 (2)-- 极客时间

08 | 事务到底是隔离的还是不隔离的?如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view(一致性视图),之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。假如一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,它又不能这么超然了,会被锁住,进入等待状态。问题是,既然进入了等待状态,那么等到这个事务自己获取到行锁要更新数据的时候,它读到的值又是什么呢?

2021-12-14 20:54:34 1328

原创 Spring 容器工具类

Spring 容器工具类

2021-12-03 17:57:20 312

原创 MySQL 实战 45 讲学习笔记(1) -- 极客时间

01 | 基础架构:一条 SQL 查询语句是如何执行的?1. 思考这条查询语句在 MySQL 内部的执行过程?select * from T where id=102. MySQL 逻辑架构图大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等。而存

2021-12-01 20:02:57 1833

原创 ArrayList 源码 + 扩容机制分析

1. ArrayList 简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,我们可以使用 ensureCapacity() 方法来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。ArrayList继承于 AbstractList ,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。public class ArrayList<E&g

2021-11-26 09:13:08 432

原创 HashMap 源码分析

1、简介HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 容器之一,是非线程安全的。HashMap 可以存储 null 的 key 和 value,但 null 作为 key 只能有一个,null 作为 value 可以有多个(注意:仅仅只是 HashMap 可以有为 null 的 key)。底层数据结构:JDK 1.7 数组 + 链表JDK 1.8 数组 + (链表 | 红黑树)JDK 1.8 以前,HashMap 的底层结构是由 数组 +

2021-11-22 15:45:31 873

原创 Java 基础

Java 基础基础概念与常识1、Java 语言有哪些特点?简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);支持多线程 ;可靠性;安全性;支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);编译与解释并存;2、JVM vs JDK vs JRE2.1 JVMJava 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,

2021-11-20 10:24:14 646

原创 HashMap 的 7 种遍历方式与性能分析

1、遍历方式1.1 迭代器 EntrySet/** * 1. 迭代器 EntrySet */@Testpublic void test1() { Map<Integer, String> map = new HashMap<>(); map.put(1, "Java"); map.put(2, "JavaSE"); map.put(3, "JavaEE"); map.put(4, "Spring"); map.put(5,

2021-11-12 21:45:20 2635

原创 SpringCloud 微服务学习

引言为什么要学习微服务?需要学习哪些知识?1、认识微服务1.1 服务架构演变单体架构分布式架构服务治理:总结微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发面向服务:微服务对外暴露业务接口自治:团队独立、技术独立、数据独立、部署独立隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题单体架构特点?简单方便,高度耦合,

2021-11-10 19:59:25 370

原创 Spring Boot Admin 快速入门

参考博客地址1、介绍官网地址Spring Boot Admin 是开源社区孵化的项目,用于对 Spring Boot 应用的管理和监控。Spring Boot Admin 分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用 http 通讯方式实现数据交互;单体项目中需要整合 spring-boot-admin-client 才能让应用被监控。在 SpringCloud 项目中,spring-boot-ad

2021-11-06 19:36:32 2445 6

原创 快速创建 Spring Boot 工程 -- 阿里云版(极力推荐)

当我们使用 IDEA 的 Spring Initializr 创建 Spring Boot 工程的时候,往往 https://start.spring.io 的速度不尽人意,毕竟是外网,有墙,懂的都懂。所以我们使用另外一种方式 — 阿里云版。1、选择 Custom填入 https://start.aliyun.com/2、填入相应的信息3、选择对应的技术4、创建成功...

2021-10-30 19:11:33 2412

原创 Swagger 3 整合 knife4j

1、引入依赖<!--整合Knife4j--><dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version></dependency><!--如果SpringBoot版本

2021-10-25 15:15:31 1121

原创 快速排序实现(Java)

文字描述:1、每一轮排序选择一个基准点(pivot)进行分区(1)让小于基准点的元素的进入一个分区,大于基准点的元素进入另一个分区(2)当分区完成后时,基准点元素的位置就是其最终位置2、在子分区内重复以上过程,直至子分区元素个数少于等于 1,这体现的是分而治之的思想(divide-and-conquer)实现方式:1、单边循环快排(1)选择最右元素作为基准点元素(2)j 指针负责找到比基准点小的元素,一旦找到则与 i 进行交换(3)i 指针维护小于基准点元素的边界,也就是每次交换的目标索

2021-10-11 08:33:20 179

原创 Leetcode 题解 - 树

参考☞:CS-Notes递归一棵树要么是空树,要么有两个指针,每个指针指向一棵树。树是一种递归结构,很多树的问题可以使用递归来处理。1. 树的高度Leetcode (opens new window)/ 力扣class Solution { public int maxDepth(TreeNode root) { // 结束条件 if (root == null) { return 0; }

2021-10-09 19:11:28 303

原创 单例模式实现

1、代码实现1.1 饿汉式-1静态变量方式public class Singleton { private static Singleton singleton = new Singleton(); /** * 私有构造方法 */ private Singleton() {} public static Singleton getInstance() { return singleton; }}1.2 饿汉式-2

2021-10-04 16:59:42 80

原创 大厂面试题第二季(阳哥)--上

1、Volatilevolatile 是 JVM 提供的一种轻量级的同步机制。三大特性:保证可见性不保证原子性禁止指令重排代码实践:package com.yanghui;import java.util.concurrent.TimeUnit;/** * @ClassName VolatileDemo * @Author YH * @Date 2021/9/25 * @Version 1.0 */public class VolatileDemo { /**

2021-10-02 20:52:46 310

原创 Leetcode 题解 - 链表

参考:CS-Notes1. 找出两个链表的交点Leetcode (opens new window)/ 力扣/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */pu

2021-09-26 12:06:31 148

原创 Spring Boot 整合 Swagger3

​ 前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,Swagger 是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低。与 Swagger2 相比新版的 Swagger3 配置更少,使用更加方便。1、引入依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifact

2021-09-21 13:14:19 99

原创 OAuth2

一、OAuth2 解决什么问题1、OAuth2 提出的背景照片拥有者想要在云冲印服务上打印照片,云打印服务需要访问云存储服务上的资源。某个服务想访问某个用户的某个资源,但是不能完全放开权限,这样不安全。2、图例资源拥有者:照片拥有者客户应用:云打印受保护的资源:照片3、方式一:用户名密码复制适用于同一公司内部的多个系统,不适用于不受信的第三方应用。4、方式二:通用开发者 key适用于合作商或者授信的不同业务部门之间。5、方式三:颁发令牌接近 OAuth2

2021-09-19 22:59:59 104

原创 Spring Boot 实现微信扫码登录(JustAuth)

整合 JustAuth 开源组件实现微信登录。文档地址:https://justauth.wiki/oauth/wechat_open.html1、新建一个 Spring Boot 工程2、引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></d

2021-09-19 22:49:01 2194 2

原创 Spring Boot 与缓存

Spring Boot 与缓存1、JSR-107(少用)2、Spring 缓存抽象(重要)2.1 基本环境搭建(1)新建一个 Spring Boot 工程(2)导入依赖,pom.xml 内容为:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200

2021-09-12 16:27:40 107

原创 JWT工具类

1、引入依赖<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt --><dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.10.3</version></dependency>

2021-09-10 12:15:40 147

原创 JWT入门

1、什么是 JWT?JWT 官网Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。一句话:JWT 用于分布式系统的单点登录 SSO 场景,...

2021-09-04 20:07:44 184

原创 Linux 小总结

一、Linux 目录结构1、基本介绍Linux 的文件系统是采用级层式的树状目录结构,在此结构的最上层是根目录 / ,然后在此目录下再创建其他的目录。一句经典的话:在 Linux 世界里,一切皆文件!2、具体的目录结构(1)/bin [常用](/usr/bin、/usr/local/bin)是 Binary 的缩写,这个目录存放着最经常使用的命令。(2)/sbin (usr/sbin、/usr/local/sbin)s 就是 Super User 的意思,这里存放的是系统管理员使

2021-08-28 23:13:34 149

原创 谷粒学院第七天

谷粒学院第七天一、添加课程分类前端实现1、配置路由(1)src/router/index.js//课程分类{ path: 'subject', component: Layout, redirect: '/edu/subject/list', name: 'Subject', meta: { title: '课程分类管理', icon: 'nested' }, children: [ { path: '/list',

2021-08-26 18:55:40 292 1

原创 谷粒学院第六天

一、添加讲师实现头像上传功能1、阿里云 OSS 存储服务(1)创建 Bucket2、阿里 OSS 开发准备(1)创建并查看 AccessKeyJava开发文档3、实现头像上传功能3.1 新建云存储微服务(1)新建一个 service-oss 模块(2)引入依赖<!-- 阿里云 OSS 依赖 --><dependency> <groupId>com.aliyun.oss</groupId> <art..

2021-08-25 20:58:56 323

原创 谷粒学院第五天

谷粒学院第五天一、后台系统登录功能改造把登录的请求接口换成我们自己的接口地址。注意跨域问题。Contorller 代码:@CrossOrigin@RestController@RequestMapping("/eduService/user")public class EduLoginController { @PostMapping("/login") public Result login() { Map<String, Object>

2021-08-24 19:06:40 323 2

原创 Spring Security 学习

Spring Security 官网中文文档学习 Spring Security 的前置知识:Spring 框架Spring Boot 框架Java Web一、Spring Security 介绍1、概要Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。正如你可能知道的关于安全方面的两个主要区域是”认证“

2021-08-23 17:18:34 160

原创 谷粒学院第四天

一、axios1、介绍2、使用<!DOCTYPE html><html lang="en"><head> <title>axios使用</title> <script src="vue.min.js"></script> <script src="axios.min.js"></script></head><body> ...

2021-08-21 21:42:43 351

原创 谷粒学院第三天

一、统一日志处理1、日志1)、配置日志级别日志记录器(Logger)的行为是分等级的。如下表所示:分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL默认情况下,SpringBoot 从控制台打印出来的日志级别只有 INFO 及以上级别,可以配置日志级别。# 设置日志级别logging.level.root=WARN这种方式只能将日志打印在控制台上。2、Logback 日志SpringBoot 内部使用 Logback 作为日志实现的框架。Logback

2021-08-10 00:10:00 220

原创 阿里云上部署项目,已经配置了安全组,当仍然无法访问项目所在的端口号

阿里云上部署项目,已经配置了安全组,当仍然无法访问项目所在的端口号问题描述:部署的项目是运行在 8443 端口上的,安全组也已经打开,但是无法在浏览器中访问!问题解决我们需要在 Linux 系统中开放防火墙的端口 8443 ,之后就可以正常访问了!1、添加端口firewall-cmd --zone=public --add-port=8443/tcp --permanent注意:--permanent 参数的意思是让它永久生效,否则你重启之后它就会失效了!2、重新加载防火墙fi

2021-08-08 10:57:14 448

原创 谷粒学院第二天

前后端分离概念:开发讲师管理模块后端一、数据库设计数据库guli数据表CREATE TABLE `edu_teacher` ( `id` char(19) NOT NULL COMMENT '讲师ID', `name` varchar(20) NOT NULL COMMENT '讲师姓名', `intro` varchar(500) NOT NULL DEFAULT '' COMMENT '讲师简介', `career` varchar(500) DEFAU

2021-08-07 21:06:40 420

转载 谷粒学院第一天

谷粒学院第一天一、起步1、前置知识2、项目背景在线教育顾名思义,是以网络为介质的教学方式,通过网络,学员与教师即使相隔万里也可以开展教学活动;此外,借助网络课件,学员还可以随时随地进行学习,真正打破了时间和空间的限制,对于工作繁忙,学习时间不固定的职场人而言网络远程教育是最方便不过的学习方式。3、项目采用的商业模式B2C 模式(Business To Customer 会员模式):此项目采用B2CB2B2C 模式:(商家到商家到用户)4、项目功能模块5、项目中

2021-08-05 22:52:54 1493

原创 Maven 多模块互相依赖打包问题

问题描述:项目有多个模块,然后把一些公共的抽取出来(比如说实体类,Service等)单独为一个模块,然后再需要用到的模块中引入就行了,运行是没有问题的,然而打 jar 包的时候 maven 会一直提示找不到依赖的那个模块,从而打包失败!问题解决:很简单,对父工程进行 clean install,然后再对想要打包的子模块进行 clean package 即可!例如:...

2021-08-05 11:43:05 979

原创 Apache JMeter 实现压力测试

Apache JMeter 实现压力测试Apache JMeter 可用于测试静态和动态资源、Web 动态应用程序的性能。它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。1、JMeter官网http://jmeter.apache.org/2、JMeter下载下载地址:http://jmeter.apache.org/download_jmeter.cgi3、启动 JMeter解压下载好的压缩包后,在 bin 目录下双击 j

2021-08-02 09:27:47 178

原创 第二章 InnoDB 存储引擎(《MySQL 技术内幕 InnoDB 存储引擎》读书笔记)

InnoDB 是事务安全的 MySQL 存储引擎,设计上采用了类似于 Oracle 数据库的架构。通常来说,InnoDB 存储引擎是 OLTP(在线事务处理) 应用中核心表的首选存储引擎。同时,也正是因为 InnoDB 的存在,才使 MySQL 数据库变得更有魅力。2.1 InnoDB 存储引擎概述InnoDB 存储引擎最早由 Innobase Oy(现在已经被 Oracle 公司收购)公司开发,从 MySQL 5.5 版本后开始是默认的表存储引擎。该存储引擎是第一个完整支持 ACID 事务的

2021-07-19 18:02:55 197 1

原创 实现码云第三方登录

1、创建授权应用第一步:点击 设置第二步:点击 第三方应用第三步:点击 创建应用第四步:填入相应的信息点击 创建应用第五步:查看创建应用后 相应的信息2、开始编写代码第一步:创建一个 SpringBoot 工程第二步:编写 pom.xml 文件导入相关的依赖,pom.xml 文件代码如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apac

2021-07-17 15:45:24 847

原创 第一章 MySQL 体系结构和存储引擎(《MySQL 技术内幕 InnoDB 存储引擎》读书笔记)

MySQL 被设计为一个可移植的数据库,几乎在当前所有的系统上都能运行,如 Linux,Solaris,FreeBSD,Mac 和 Windows。尽管各平台在底层(如线程)实现方面都各有不同,但是 MySQL 基本上能保证在各平台上的物理体系结构的一致性。1.1 定义数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。实例:MySQL 数据库通常由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。需要牢记的是,数据库实例才是真正用于操作数据库文件的。在 MySQ

2021-07-11 17:24:15 174

原创 日期格式化 - SimpleDateFormat 的简单使用(字符串转日期,日期转字符串)

日期格式化 - SimpleDateFormat 的简单使用(字符串转日期,日期转字符串)1、代码import java.text.SimpleDateFormat;import java.util.Date;/** * @ClassName Test * @Author YH * @Date 2021/6/27 * @Version 1.0 */public class Test1 { public static void main(String[] args) thro

2021-06-27 21:22:06 642

Xftp-6.0.0199p.exe.zip

Linux 远程传输软件

2021-05-25

Xshell-6.0.0204p.exe.zip

Linux 远程连接软件

2021-05-25

空空如也

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

TA关注的人

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