- 博客(111)
- 资源 (5)
- 收藏
- 关注

原创 SpringBoot+SpringSecurity+JWT实现认证和授权
一、背景:在 B/S 系统中,登录功基本都是依靠 Cookie 来实现的,用户登录成功之后主要需要客户端和服务端完成以下两项工作:(1)服务端将登录状态记录到 Session 中,或者签发Token;(2)客户端利用Cookie保存于服务端对应的 Session ID 或 Token。之后每次请求都会带上Cookie信息(包含Session ID或者Token),当服务端收到请求后,通过验证 Cookie 中的信息来判断用户是否登录 。单点登录:单点登录(Single Sign On, S.
2021-01-17 23:40:52
54926
27

原创 ShardingSphere-ShardingJdbc 数据脱敏
摘要:数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。百度百科给出的解释:数据脱敏指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。数据安全技术之一,数据库安全技术主要包括:数据库漏扫、数据库加密、数据库防火墙、数据脱敏、数据库安全审计系统。数据库安全风险包括:拖库、刷库、撞库。开发系统
2020-10-25 20:47:31
2120
1

原创 ShardingSphere-ShardingJdbc 读写分离
一、读写分离背景分库分表虽然可以优化数据库操作。但是要实现高并发,主从架构就应运而生了,数据库的主从复制架构,将数据库的写操作定位到主库中进行,主库和从库之间通过异步复制、半同步复制保持数据一致。所有的读操作都在主库的N个从库上进行。通过负载均衡使得每一次查询均匀的落在每一个从库上。一主n从,做读写分离(数据写入主库,通过mysql数据同步机制将主库数据同步到从库–>程序读取从库数据),多个从库之间可以实现负载均衡。次外,ShardingSphere-ShardingJdbc可手动强制部分读请求到
2020-10-25 17:52:48
4361
10

原创 ShardingSphere-ShardingJdbc 数据分片(分库、分表)
ShardingSphere 数据分片(分库、分表)摘要:我们实际开发中,总有几张和业务相关的大表,这里的大表是指数据量巨大。如用户表、订单表,又或者公司业务中的主表,可能很快这种表的数据就达到了百万、千万、亿级别的规模,并且增长规模一直很快。这种情况下,单表已经满足不了了存储需求了,同时,这么大的数据量,即使搭配合理的索引,数据库查询也是很慢的,这时就需要对这些大表进行分库、分表。应用需要能对sql进行解析、改...
2020-10-25 16:10:02
3733

原创 MySQL 主从同步原理与实践
MySQL 主从同步为什么要实现主从同步高并发阶段,数据库压力会非常大。然而实际上大部分的网站、 app,其实都是读多写少。针对这个情况,可以维持一个主库(数据写入),主库挂多个从库(数据读取),主库会自动把数据给同步到从库上去,一写多读,减少数据库的查询压力,从而提高并发能力。...
2020-09-27 17:19:47
1576

原创 Centos 7 MYSQL5.7 安装与卸载
Centos 7 安装与卸载MYSQL5.7一、卸载已安装的MySql1.1 rpm查看安装rpm -qa | grep -i mysql1.2rpm 卸载清除上述查找出来的MySQLrpm -e mysql57-community-release-el7-9.noarchrpm -e mysql-communi...
2019-09-22 00:18:24
605

原创 SpringBoot+SpringSecurity+mysql实现认证与授权
一、Spring Security框架1. 框架简介 官方介绍:Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实标准。 Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring Security的真正强大之处在于它可以轻松扩展以满足...
2019-01-29 15:39:50
13185
2

原创 SpringBoot+Spring Security基于内存用户认证
一、Spring Security框架1. 框架简介 官方介绍:Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实标准。 Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring Security的真正强大之处在于它可以轻松扩展以满足...
2019-01-29 10:24:27
3282

原创 SpringBoot +JDBC连接Mysql数据库
SpringBoot 使用JDBC连接Mysql数据库 Spring连接Mysql的方式有很多,例如JDBC,Spring JPA,Hibeirnate,Mybatis等,本文主要介绍使用最简单、最底层的JDBC方式来连接Mysql数据库,JDBC连接数据库,主要是注入JdbcTemplate,使用JdbcTemplate来操作数据库。一、在mysql中的test库中建立user表,...
2018-07-09 15:37:46
66778
23
原创 IDEA->EasyCode(mapper.xml) 字段无逗号分割问题
IDEA->EasyCode(mapper.xml) 字段无逗号分割问题_easycode allsqlcolumn 没有逗号-优快云博客
2024-04-24 17:31:00
1487
1
原创 element-ui 中的table的el-table-column 隐藏问题记录
el-table-column 使用v-show不生效,需要使用v-if。把需要隐藏的列部用一个容器包裹起来。
2022-12-15 11:29:01
1296
原创 springboot+vue前后的项目搭建
一、springboot项目搭建前言-使用技术springbootmybatis-plusmysql1.2 创建springboot项目1.2 集成mybatis-plus1.3 设置跨域1.1 配置类1.2 配置注解1.3 前端设置proxy二、前端项目搭建前言-使用技术2.1 vue2.2 element-ui2.3 axios2.4 router2.1 创建vue项目2.2 集成element-ui2.3 集成axios...
2022-05-04 14:14:22
2204
1
原创 docker重置mysql密码
进入容器 docker exec -it {容器ID} /bin/bash调整MySQL配置文件,设置跳过权限控制:echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf警告:这就意味着任何用户都能登录进来,并进行任何操作,相当不安全。退出容器 : exit重启容器:docker restart {容器ID}再次进入容器: docker exec -it {容器ID} /bin/bash登录 mysql(无需密码) : my.
2022-04-13 20:17:01
3089
原创 Docker 安装Nginx
安装nginx并挂载1.查看可用版本:docker search nginx2.拉取官方的最新版本的镜像:docker pull nginx:latest3.查看本地镜像使用以下命令来查看是否已安装了 nginx:docker images4.在主机创建挂载目录mkdir -p /home/nginx/confmkdir -p /home/nginx/htmlmkdir -p /home/nginx/logs5.创建配置文件/home/ngi...
2021-08-31 20:37:27
402
原创 Docker 基础操作指令
镜像的操作# 1. 拉取镜像到本地docker pull 镜像名称[:tag]# tomcatdocker pull daocloud.io/library/tomcat:8.5.15-jre8# 2. 查看全部本地的镜像docker images# 3. 删除本地镜像docker rmi 镜像的标识# 4. 镜像的导入导出(不规范)# 将本地的镜像导出docker save -o 导出的路径 镜像id# 加载本地的镜像文件docker load -i 镜像文件# 修改镜.
2021-08-31 12:09:46
267
原创 安装Docker
安装Docker第一步:安装工具包sudo yum install -y yum-utils第二步:设置远程仓库yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo第三步:安装sudo yum install docker-ce帮助文档docker --help第四步:启动systemctl start ...
2021-08-31 11:57:44
212
原创 SpringBoot+thymeleaf 局部刷新
html页面:<h2>5.局部刷新</h2><br><button id="btn">刷新1</button><button id="btn2">刷新2</button><div th:fragment="info" id="info"> info: <span th:text="${info}">info</span> <span>test 刷新&l
2021-03-21 18:17:45
2191
2
原创 Mybatis Mapper 中如何传递多个参数
一、DAO 层的函数public UserselectUser(String name,String account);<select id="selectUser" resultMap="ResultMap">select * from user where name = #{0} and account = #{1}</select>对应的 xm,#{0}代表接收的是 dao 层中的第一个参数,#{1}代表 dao 层中第二参数,更多参数一直往后加即可。二、使
2021-03-20 22:34:52
4190
原创 yum 阿里云源
[root@localhost home]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak[root@localhost home]# vim /etc/yum.repos.d/CentOS-Base.repo[root@localhost home]# yum clean all[root@localhost home]# yum makecache[base]name=CentOS-6.1
2021-03-09 10:56:56
236
原创 Https 证书申请与踩坑指南
一、证书申请途径到证书代理机构购买相关证书(目前阿里云或者腾讯云也是可以购买的)使用letsencrypt 或者https://sslforfree.com 申请免费证书如果是开发测试可以使用jdk自带的keytools生成https证书:可参考 https://blog.youkuaiyun.com/u014553029/article/details/88219617二、配置tomcat配置Tomcat服务器server.xml<Connector protocol="org.apache.c
2021-03-05 10:54:13
420
1
原创 Https流程和原理
一、HTTPS简介HTTPS:http+ssl(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLSSSL(Secure Socket L
2021-02-27 00:55:54
803
原创 java集合
比较ListSetMap继承接口CollectionCollection-常见实现类AbstractList(其常用子类有ArrayList、LinkedList、Vector)AbstractSet(其常用子类有HashSet、LinkedHashSet、TreeSet)HashMap、HashTable常见方法add( )、remove( )、clear( )、get( )、contains( )、size( )add( )、remove( )、cle...
2021-02-24 17:10:56
241
原创 SpringBoot + EhCache实现本地缓存
一、EhCache 介绍1.1 什么是EhCache ?EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。Spring 提供了对缓存功能的抽象:即允许绑定不同的缓存解决方案(如Ehcache)
2021-02-22 17:26:25
2500
1
原创 java中的锁
一、jmm 内存模型volitale二、java中的锁在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。2.1 synchronized vs ReentrantLocksynchronized 属于独占式悲观锁,是通过 JVM 隐式实现的,synchron
2021-02-20 17:32:55
1776
1
原创 多线程编程
多线程编程一、线程线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源、更加轻量化,也因此被称为轻量级的进程。1.1 线程创建方式(1) 集成Thread类(2) 实现Runnable接口(3) 实现Callable接口(可以通过Future接收执行结果)1.2 线程状态线程的状态在 JDK 1.5 之后以枚举的方式被定义在 Thread 的源码中,它总共包含以下
2021-02-20 11:27:34
471
原创 mysql 数据库优化
mysql 数据库优化表设计 索引 缓存 读写分离 分库分表(负载均衡)一、使用索引(防止索引失效)二、使用缓存(redis、memcached)三、读写分离(主从复制)、分库分表(负载均衡)索引检查的口诀全值匹配我最爱,最左前缀要遵守。带头大哥不能死,中间兄弟不能断。索引列上少计算,范围之后全失效。Like百分写最右,覆盖索引不写星。不等空值还有or,索引失效要少用。VAR引号不可丢,SQL高级也不难!1、全值匹配我最爱2、最佳左前缀法则如果索引了多列,要遵守此规则,指的是从索
2021-02-20 11:08:54
185
原创 SpringBoot 定时任务 实现方式
要实现定时任务,主要有以下两种方案:使用 Spring 自带的定时任务处理器 @Scheduled 注解;使用第三方框架 Quartz 。一、 @Scheduled使用 @Scheduled 非常容易,直接创建一个 Spring Boot 项目,并且添加 web 依赖 spring-boot-starter-web,项目创建成功后,添加 @EnableScheduling 注解,开启定时任务:@SpringBootApplication@EnableSchedulingpublic cla
2021-02-07 11:12:42
811
1
原创 linux服务器配置查看与调优
一、查看CPU的信息用cat打开查看cat /proc/cpuinfo 查看CPU 的详细信息 (型号, 家族, 缓存大小等)cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看CPU型号cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l 查看物理CPU的个数cat /proc/cpuinfo |grep “processor”|wc -l 查看逻辑CPU的个数cat /p
2021-02-07 10:52:02
246
原创 Spring Cloud Alibaba: Seata - 分布式事务解决方案
官方网站:http://seata.io/zh-cn/文档地址:http://seata.io/zh-cn/docs/overview/what-is-seata.html
2021-02-05 11:55:58
466
原创 Spring Cloud Alibaba: Nacos-集群搭建
一、安装nginx1.1 下载nginx,保存路径为:/usr/local/softwarecd /usr/local/softwarewget http://nginx.org/download/nginx-1.19.6.tar.gz1.2 解压安装包,得到解压目录tar -xzvf nginx-1.19.6.tar.gz1.3 进入解压目录cd nginx-1.19.61.4 执行命令指定安装目录./configure prefix=/usr/local/nginx1.19
2021-02-04 16:52:07
238
原创 Spring Cloud Alibaba: Nacos-配置中心
简介Nacos除了实现了服务的注册发现之外,还将配置中心功能整合在了一起。通过Nacos的配置管理功能,我们可以将整个架构体系内的所有配置都集中在Nacos中存储。这样做的好处,在以往的教程中介绍Spring Cloud Config时也有提到,主要有以下几点:分离的多环境配置,可以更灵活的管理权限,安全性更高应用程序的打包更为纯粹,以实现一次打包,多处运行的特点本文主要记录:Nacos作为配置中心的功能一、在Nacos管理平台新建配置进入Nacos的控制页面,在配置列表功能页面中,点击右上
2021-02-04 15:11:18
314
原创 Spring Cloud Alibaba:常用的服务消费方式(RestTemplate、OpenFeign)
Spring Cloud Alibaba:常用的服务消费方式(RestTemplate、OpenFeign)简介通过上一篇博客,我们已经初次尝试的使用Nacos作为服务注册中心实现服务的注册与发现。在测试服务消费过程中,我们使用的是RestTemplate组件,但是这种方式相对而言会比较复杂,每次调用服务接口都需要指定服务id,调用接口路径,处理返回内容等,对于开发人员来说非常的不友好。所以本文主要记录常用的远程服务消费方式,主要有两种,分别是RestTemplate和OpenFeign,下面就来看看他
2021-02-04 10:01:27
499
原创 Spring Cloud Alibaba: Nacos-服务注册与发现
前言本文主要记录nacos服务端搭建以及如何使用Nacos作为服务注册中心实现服务的注册与服务发现。一、 Nacos简介文档: https://nacos.io/zh-cn/docs/what-is-nacos.htmlNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云
2021-02-03 17:29:22
298
原创 Spring Cloud Alibaba 简介
一、Spring Cloud Alibaba 简介文档: https://nacos.io/zh-cn/docs/what-is-nacos.htmlSpring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通
2021-02-03 17:00:35
3548
2
原创 从零快速搭建一个SpringBoot Web项目
从零快速搭建一个SpringBoot Web项目环境:IDEA+Navicat+Jdk1.8+Mysql5.7 SpringBoot+Thymeleaf+SpringData-JPA+apache-shiro目录从零快速搭建一个SpringBoot Web项目一、新建一个SpringBoot项目1.1 选择新增:File->New->Project1.2 选择Spring Initializr,指定JDK版本,直接下一步1.3填写项目相关信息,然后下一步...
2021-01-13 21:36:39
833
原创 SpringBoot + Activiti 工作流引擎(二、流程&任务操作)
1. SpringBoot + Activiti 工作流引擎(一、基本概念与环境搭建)2.SpringBoot + Activiti 工作流引擎(二、流程&任务操作)经过第一章的操作,我们已经完成了SpringBoot 与activi的整合环境搭建,本文将着重介绍如何在整合好的项目中完成流程的部署、流程启动、任务查询、任务处理、查询流程实例进度情况等内容。一、流程部署/** * 部署请假流程 */ @GetMapping("deploy") public
2021-01-10 19:10:48
24989
2
原创 ElasticSearch 搜索方式
请求地址:GET http://localhost:9200/blogindex/blog/_search一、match{ "query": { "match": { "name" : "中华人民共和国" } }}上面的查询会先对内容进行分词,分词以后所有包含这分词中的一个或多个的文档就会被搜索出来。并且根据lucene的评分机制(TF/IDF)来进行评分。二、match_phrase{ "query": { "match_phrase":
2020-12-30 16:09:11
196
原创 SpringBoot+CAS Client 实现单点登录
本文主要介绍在使用SpringBoot的开发过程中如何整合CAS Client实现单点登录的功能。准备工作(1)搭建好CAS服务端(参考:https://blog.youkuaiyun.com/u014553029/article/details/88102311)(2)准备好一个普通的SpringBoot Web项目集成一、引入CAS client依赖在pom.xml中引入CAS Client的依赖包。代码如下:<dependency> <groupId>net.unic
2020-12-23 23:40:07
3001
1
原创 SpringBoot + Activiti 工作流引擎(一、基本概念与环境搭建)
SpringBoot + Activiti一、什么是ActivitiActiviti是一个轻量级的工作流和业务流程管理(BPM)平台,面向业务人员,开发人员和系统管理员。它的核心是用于Java的超快速,坚固的BPMN 2流程引擎。它是开源的,并根据Apache许可进行分发。Activiti可以在任何Java应用程序,服务器,集群或云中运行。它与Spring完美集成,非常轻巧,基于简单的概念。我们可以通俗一点理解,Activiti工作流就是将我们日常的流程(例如:请假、报销、岗位调整等流程)规范起来,将
2020-12-13 23:05:33
13545
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人