自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 java架构师系列课程-目录

设计模式01 设计模式(Design Patterns)简介 02-1 工厂模式数据结构与算法数据结构基础01 队列算法01 深度优先搜索(DFS)&广度优先搜索(BFS)leetcode 字符串_3无重复字符的最长子串leetcode 字符串_5最长回文子串数据库00 mysql语句练习50题01 mysql体系构架、存储引擎...

2021-08-19 14:34:43 347

原创 vue3集成bpmn.js

vue3+setup+bpmn.js

2023-08-30 17:21:57 3460 3

原创 谷粒商城-02-集成springcloud-alibaba各大组件

1 解决跨域问题启动前端renren-fast-vue-msater,启动后台renren-fast登录(admin/admin)[产生跨域问题,后台报错]When allowCredentials is true, allowedOrigins cannot contain the special value "*“since that cannot be set on the “Access-Control-Allow-Origin” response header. To allow

2022-03-11 15:16:50 1133

原创 谷粒商城实战-01-基础环境搭建

虚拟机:腾讯云服务器(CentOS7) 124.223.118.207虚拟机操作工具:MobaXterm1 docker安装mysql,redis(1)安装docker1.1 移除旧dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ ...

2022-03-11 11:44:42 2436

原创 10 centos7部署mqtt

yum install gcc-c++yum install cmakeyum install openssl-develcd /homewget http://mosquitto.org/files/source/mosquitto-1.4.10.tar.gztar -xzvf mosquitto-1.4.10.tar.gz安装c-areas:wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gztar xvf c-.

2022-03-03 10:39:37 178

原创 权限管理04-oauth2基础

OAuth2允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容名词定义Third-party application:第三方应用程序(client)HTTP service:HTTP服务提供商Resource Owner:资源所有者(用户user)User Agent:用户代理(浏览器)Authorization server:认证服务器Resource server:资源服务器OA

2022-03-02 09:26:21 539

原创 springboot整合flowable快速实现工作流

1 flowable-ui部署运行从官网下载flowable-6.6.0 :https://github.com/flowable/flowable-engine/releases/download/flowable-6.7.2/flowable-6.7.2.zip将压缩包中的 flowable-6.7.2\wars\下的两个war包丢到Tomcat中的webapps文件夹中进入bin目录,启动tomcatcdD:\apps\apache-tomcat-10.0.16\b...

2022-02-25 17:31:54 2395

原创 09 CentOS7安装MariaDB(MYSQL分支)

1.安装和设置数据库在CentOS7下,默认安装的数据库为MariaDB,属于MySQL数据库的一个分支,所以我还是使用了MariaDB。安装命令为:yum install mariadb-server -y启动数据库服务:systemctl start mariadb//设置开机自启systemctl enable mariadb 对数据库进行一些基本设置:mysql_secure_installation 初始情况下没有密码,直接回车,它会自动提示你重..

2022-02-23 15:35:34 124

原创 08 centos7搭建openldap

1 安装openldapyum install -y openldap openldap-clients openldap-servers复制一个默认配置到指定目录下,并授权,再启动服务,不然生产密码时会报错cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG授权给ldap用户,此用户yum安装时便会自动创建chown -R ldap. /var/lib/ldap/DB_CONFI

2022-02-22 18:21:06 2165 3

原创 策略模式+工厂模式+模板模式优化if-else

1 模板模式实现不同的策略(演示三种)package com.grm.strategy.handler;import org.springframework.beans.factory.InitializingBean;/** * 模板方法设计模式 * * @author gaorimao * @date 2022/02/22 */public abstract class Handler implements InitializingBean { public void

2022-02-22 16:38:48 488

原创 表驱动法优化大量if-else

package com.grm.demo;import java.util.HashMap;import java.util.Map;import java.util.function.Function;/** * 演示优化大量if-else(表驱动法) * * @author gaorimao * @since 2022/02/22 */public class Demo { private static Map<String, Function<String.

2022-02-22 15:43:09 534

原创 springboot自带mail实现邮件发送

登录网易邮箱,打开POP3/SMTP/IMAP设置授权码(发送手机短信会受到一个授权码)引入pom.xml <!--邮件发送依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId&g

2022-02-17 15:34:41 1420

原创 03 springboot+kafka+ELK实现海量日志收集

1 架构图2

2022-02-16 15:23:14 921

原创 09 路由守卫对url鉴权

登陆后,从后台加载出当前登录用户的信息1 登录信息实体类package com.grm.entity;import java.io.Serializable;import java.util.List;/** * 登录用户信息(用户名+头像,菜单列表) * * @author gaorimao * @date 2022/02/10 */public class LoginUserInfo implements Serializable { /** * 用户名

2022-02-16 14:22:38 1730

原创 springboot文件上传

1 引入pom依赖 <!-- 上传下载依赖 --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.8.0</version> </dependenc

2022-02-11 17:07:04 361

原创 权限管理03-security登陆后鉴权

1 大坑解决(security登录认证成功后,获取的用户一直是匿名用户)【问题复现】登陆成功后,调用其他接口,总是自动进入到我们的匿名用户未授权的过滤器,也就是前文写的这里【问题分析】security在UsernamePasswordAuthenticationFilter过滤器进行登录参数获取,但是之前还有一个过滤器SecurityContextPersistenceFilter,看下源码源码中这个过滤器会清除掉SecurityContextHolder中的Contex.

2022-02-11 08:58:08 3345 1

原创 权限管理02-springboot整合springsecurity

1 加入pom.xml<!--Mysql数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- druid --> <dep

2022-02-05 15:11:54 1700 1

原创 权限管理01-RBAC数据库表设计

0 分析1 建表语句(1)用户表CREATE TABLE `sys_user` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `username` VARCHAR(64) DEFAULT NULL COMMENT '用户名', `password` VARCHAR(64) DEFAULT NULL COMMENT '密码', `avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像', `phone`

2022-02-05 11:54:30 1853

原创 08 完善头部,加入首页菜单

<!-- 头部导航 --> <el-header> <strong>小高后台管理系统</strong> <div class="header-avatar"> <el-avatar size="medium" :src="currentUser.headImg"></el-avatar> <el-d...

2022-02-02 09:50:48 1208 1

原创 07 动态菜单栏

1 左侧菜单栏静态数据改为动态数据1 后台数据<script>export default { data() { return { menuList: [ { name: "SysManga", title: "系统管理", icon: "el-icon-s-operation", path: "", component: "",

2022-01-30 22:08:50 2961

原创 01 观察者模式

1 定义定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的依赖者都会收到通知并自动更新。2 实例如上图所示,服务号就是我们的主题,使用者就是观察者。现在我们明确下功能:1、服务号就是主题,业务就是推送消息2、观察者只需要订阅主题,只要有新的消息就会送来3、当不想要此主题消息时,取消订阅4、只要服务号还在,就会一直有人订阅3 类图4 代码实现模拟一个微信3D彩票服务号,和一些订阅者。两种实现方式:1.自我实现一个观察者模式 2.基于J.

2022-01-30 10:21:35 691 2

原创 07 docker下部署springboot项目

啊啊啊

2022-01-23 17:55:03 977 1

原创 06 docker下安装redis、mysql

1 linux下安装dockera 卸载旧dockeryum remove docker docker-common docker-selinux docker-engineb 安装需要的软件包yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖yum install -y yum-utils device-mapper-persistent-data lvm2设置 yum 源yum-config-manager

2022-01-21 11:38:46 1143

原创 06 主页编写

1 挑选elementui布局查看源代码,替换到项目中,代码如下<template> <div id="index"> <el-container> <el-aside width="200px">Aside</el-aside> <el-container> <el-header>Header</el-header> <

2022-01-21 10:48:28 408

原创 04 linux安装nginx

01 官网下载nginx去官网02 linux安装依赖环境a 安装gcc环境yum install gcc-c++b 安装PCRE库,用于解析正则表达式yum install -y pcre pcre-develc zlib压缩和解压缩依赖yum install -y zlib zlib-develd ssl安全的加密套接字协议层,用于http安全传输,即httpsyum install -y openssl openssl-de..

2022-01-15 17:02:20 496

原创 写个企业级的JdbcUtils

package com.grm.util;import com.grm.exception.BusinessException;import lombok.extern.slf4j.Slf4j;import java.lang.reflect.Field;import java.sql.*;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/*.

2021-12-29 12:40:29 630

原创 05 登录接口联调

1 前端发送axios,请求登录接口之前我们讲过axios,那么我们直接运用,代码如下:在前端页面,进行登录,查看效果发现存在几个问题,(1)请求url,http:localhost:9001 其实属于项目根路径,发送axios时没必要一直重复书写,还存在一个问题就是不同环境的ip+端口不一致,我们在开发环境是http:localhost:9001,到了生产环境可能是http://10.1.1.1:7777等,那么我们不可能一直改所有axios请求的代码,所以要把根路径提取出来,.

2021-12-25 05:26:45 2790 1

原创 04 登录校验,引入Message消息提示

1 参数校验(1)用户名校验 规则:用户名必须是6-10位之间的字母 正则表达式[A-Za-z]{6,10}写个java代码验证下:import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexTest { public static void main(String[] args) { // 6-10位之间的字母 ...

2021-12-25 04:25:15 709

原创 03 编写登录页面

1 编写最外层div样式,让其html上下左右居中#login { position: absolute; width: 500px; height: 400px; top: 50%; left: 50%; margin-top: -200px; margin-left: -250px; border: 1px solid red;}刷新页面看下效果在elementui官网找一个表单案例把代码copy到Login.vue中...

2021-12-23 21:06:04 2945 3

原创 02 认识vue项目

1 项目结构2 集成element-uielment-ui官方文档npm i element-ui -Ssrc/main.js中引入element-uiimport Element from 'element-ui'import "element-ui/lib/theme-chalk/index.css"Vue.use(Element)在src/App.vue中,写一个button按钮,测试一下是否起作用<el-button type="war..

2021-12-23 14:01:46 1325 1

原创 01 新建一个vue项目

1 安装vscode新建一个项目用vscode打开,打开一个新的terminal2 安装node2-1 查看版本node -v2-2 安装淘宝镜像源npm config set registry https://registry.npm.taobao.org3 vue-cli 安装依赖包卸载老版本npm uninstall vue-cli -g安装新版本npm install -g @vue/cli查看刚才安装的vue-..

2021-12-23 11:56:16 514

原创 05 读写锁

1 为什么要使用读写锁,不使用synchronized使用synchronizedsynchronized搭配等待通知机制完成并发控制(写操作开始的时候,所有晚于写操作的读操作都会进入等待状态),只有写操作完成并通知后才会将等待的线程唤醒继续执行。使用读写锁读写锁实现,只需要在读操作的时候获取读锁,写操作的时候获取写锁。当写锁被获取到的时候,后续操作(读写)都会被阻塞,只有在写锁释放之后才会执行后续操作。2ReentrantReadWriteLock特点:具有与Reent..

2021-12-11 20:53:55 364

原创 04 死锁

死锁概念A持有B,B持有A,互相等待对方释放锁,而阻塞任务怎么防止死锁(1)加锁顺序线程按照一定的顺序加锁(2)加锁时限线程获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁4 产生死锁的例子```java/** * 死锁案例 * * @author gaorimao * @since 2021-12-10 */public class DeadLock implements Runnable { public int flag = 1

2021-12-10 21:23:00 229

原创 力扣刷题-深搜01

一、简单题1 二叉树的中序遍历【中序遍历】二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树在访问左子树或者右子树的时候我们按照同样的方式遍历,直到遍历完整棵树 /** * 递归 * * @param root 表示当前遍历到root节点的答案 * @return {@link List<Integer>} */ public List<Integer> inorderTrav

2021-10-02 00:21:04 146

原创 前端学习-React-01-搭建一个React项目

1 搭建

2021-10-01 08:05:04 111

原创 算法攻克-01-递归-01斐波那契数列

/** * * desc: 递归,效率最低 * * @param n * @return */ public static long getFeiBoNaQieV1(int n) { if (n <= 2) { return 1; } return getFeiBoNaQieV1(n - 2) + getFeiBoNaQieV1(n - 1); } /** * * desc: 三参数,保存中间过程 a=b+c b赋值给a c赋值给b.

2021-08-28 20:12:03 95

原创 springboot整合easyexcel实现导入导出

1 引入依赖 <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- easyexcel --> <dependenc

2021-08-19 15:34:32 463

转载 02 linux常用命令

1 Linux树型目录结构/ #根目录/bin #基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, cd等等。这个目录中的文件都是可执行的,一般的用户都可以使用。/dev #设备文件,比如声卡、磁盘、鼠标、键盘等。/etc #系统管理和配置文件/etc/init.d #启动配置文件和脚本,可在这里添加启动脚本。/etc/rc.local #用户添加启动项/home #用户主目录,比如用户user的主目录就是/home/user,可以用

2021-08-16 22:27:16 490

原创 01 类加载机制深度解析

1 从java.exe开始讲透java类加载运行全过程2 从JDK源码级别剖析JVM核心类加载器3 从JDK源码级别剖析类加载双亲委派机制4 手写自定义类加载器打破双亲委派机制5 Tomcat类加载机制深度剖析6 手写Tomcat类加载器实现多版本代码共存隔离...

2021-08-11 23:44:49 105

原创 自定义分布式锁实现接口幂等性

1 自定义注解package com.grm.annotation;import java.lang.annotation.*;import java.util.concurrent.TimeUnit;/** * desc: 自定义分布式锁注解,实现接口重复提交(幂等性) * * @author gaorimao * @since 2021-04-30 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIM

2021-08-10 14:32:52 303

空空如也

空空如也

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

TA关注的人

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