自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端01-css3-flex布局

justify-content 主轴元素对齐方式align-items 交叉轴元素对齐方式flex-direction 设置主轴方向flex-wrap 主轴一行满了换行align-content 交叉轴行对齐方式flex-flow 同时设置 flex-direction和 flex-wrap属性。

2024-01-12 17:12:28 721

原创 ry-01-验证码

思路:提供接口将生成的验证码存入session或redis,将验证码以图片格式或者base64编码串返回给调用端。存储以一个固定的KEY 例如:captcha_codes+uuid作为key 验证码的计算结果作为value。枚举类 CaptchaType (验证码类型)CaptchaCategory (验证码类别)配置类 CaptchaProperties.java 获取yaml中的配置。的map 再用EL表达式找 MAP的key为。先生成一个base64编码的案例。再缓存中查找NAME为。

2023-10-17 15:42:19 209

原创 jwt衍生出的问题-登录

jwt登录

2022-06-20 15:59:48 754

原创 jwt衍生出的问题结合实例

1.JWT简介JWT是JSON Web Token的缩写,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)。JWT本身没有定义任何技术实现,它只是定义了一种基于Token的会话管理的规则,涵盖Token需要包含的标准内容和Token的生成过程,特别适用于分布式站点的单点登录(SSO) 场景。(相对于cookie无法跨域问题)相比较与传统的Session登录方式的:在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程:客户端使用用户名和密码请求

2022-05-30 15:51:29 481

原创 singleton中衍生的问题

Spring中的单例Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。下面是几种常见的单例实现方式/** * @description:饿汉法:在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建 * @author: hdh * @date: 2022/4/13 16:25 */public

2022-05-11 10:07:29 77

原创 @Transaction回滚操作

@Transaction 声明式事务被修饰的方法,类会被加入Spring事务管理@Transaction 使用方法@Service//TransactionServiceImpl 类中的所有方法加入Spring事务管理@Transactionalpublic class TransactionServiceImpl implements TransactionService { @Autowired private User1Mapper user1Mapper; @Ov

2022-04-01 17:57:23 1999

原创 静态代理和动态代理

PRoxy代理模式:为其他对象提供一种代理以控制对这个对象的访问代理模式中的角色:抽象主题角色(Subject):声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。具体主题角色(RealSubject):也称为委托角色或者被代理角色。定义了代理对象所代表的目标对象。代理主题角色(Proxy):也叫委托类、代理类。代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象;代理对象提供一个与目标对象相同的接口,以便可以在任何时候替代目标对象。代

2022-04-01 11:02:26 60

原创 项目搭建模板

1.特殊pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> <g

2021-09-29 15:56:51 78

原创 大文件分片上传,断点续传,文件下载,在线预览

1.RandomAccessFile(随机文件存取)pom.xml<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</art

2021-09-17 16:33:13 244

原创 常用功能点汇总

1.springboot+mybatis多数据源配置pom <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>yamlspring: datasource: ds1: driver-class-n

2021-09-02 16:32:59 333

原创 docker_03_dockerFile

1.dockerFile打包运行环境和源码,交付后可以直接运行,无需安装环境。2.dockerFile指令FROM # 基础镜像,一切从这里开始构建MAINTAINER # 镜像是谁写的, 姓名+邮箱RUN # 镜像构建的时候需要运行的命令ADD # 步骤, tomcat镜像, 这个tomcat压缩包!添加内容WORKDIR # 镜像的工作目录VOLUME # 挂载的目录EX

2021-08-17 16:17:58 90

原创 docker_02_容器数据卷

1. 将容器中的目录挂载到Linux本地我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。 创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:docker run -it -v 主机目录:容器目录 #安装redis镜像,挂载redis中/home目录到 Linux中的/home/redis下[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker run -it --name=redis

2021-08-17 14:57:20 88

原创 docker_01_知识梳理

1.dockerdocker本质: 打包装箱,每个箱子都是隔离的,可以打包运行环境,一键运行程序的容器化技术。2.容器与虚拟机比较比较Docker和虚拟化技术的不同1.传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件2. 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件,所以轻便3. 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响应用更快速的交互和部署1.每个容器间是相互隔离的,每个容器内都有一个属于自己的

2021-08-16 18:03:02 112

原创 rabbitmq_03_rabbitMq内存磁盘监控

1.rabbitMq内存磁盘监控fraction/ value为内存阈值。默认情況是:0.4/2GB,代表的含义是:当 Rabbitmq的内存超过40%时,就会产生警告并且阻塞所有生产者的连接。通过此命令修改阈值在 Broker重启以后将会失效,通过修改配置文件方式设置的阈值则不会随着重启而消失,但修改了配置文件一样要重启 broker才会生效。官方配置属性docker环境需要exec 先进入容器 #设置固定值 root@52b1a37a1790:/# rabbitmqctl set_vm_me

2021-08-16 14:28:14 177

原创 rabbitmq_02_SpringBoot整合rabbitmq、死信队列

1.准备整合环境1.一个Consumber,和一个producer2.pom环境和配置文件3.docker rabbtMq实例2.整合1.pom.xml直接使用是SpringBoot脚手架搭建选择web和rabbitMq模块2.配置文件server: port: 8082#配置rabbitmq服务spring: rabbitmq: username: admin password: admin host: 192.168.204.128 port:

2021-08-16 11:13:25 81

原创 rabbitmq_01中间件简介

1.中间件中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件+平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和使用软件区分开来上面copy的 挺难定义的也挺难理解的。。。相对与我们接触到的中间简单点来说:在我们的应用程序和应用程序之间,应用程序和硬件之间,支持标准协议和

2021-08-11 14:54:14 120

原创 Redis_08_Bloom

1

2021-06-25 17:13:37 127

原创 Redis_07_Redis哨兵模式

1.Redis主从复制概念主从复制,是指将一台 Redis服务器的数据,复制到其他的 Redish服务器。前者称为主节点 master/ leader),后者称为从节点( slave/ follower);数据的复制是单向的,只能由主节点到从节点,也就是说从节点只能读不能写。 Master以写为主, Slave以读为主。 默认情况下,每台 Redish服务器都是主节点;且ー个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点主从复制的作用主要包括1、数据冗余:主从复制实现了数据的热

2021-06-25 17:11:45 206

原创 Redis_06_Redis的AOF和RDB

Redis的持久化Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis提供了持久化功能!RDB Redis Data Base(Redis的默认持久化方式)Redis会将数据集的快照dump到dump.rdb文件中。此外,我们也可以通过配置文件来修改Redis服务器dump快照的频率。1.默认的保存文件是:dump.rdb文件测试一下:60秒 至少有5次对key的操作 会持久化文件 生成dump.rdb文件save

2021-06-25 17:04:08 81

原创 Redis_05_redis.config

1.Redis基础配置解释1.redis.config中单位大小写是不敏感的#1k => 1000 bytes#1kb => 1024 bytes#1m => 1000000 bytes#1mb => 1024*1024 bytes#1g => 1000000000 bytes#1gb => 1024*1024*1024 bytes#units are case insensitive so 1GB 1Gb 1gB are all the same.2

2021-06-25 16:58:10 217

原创 Redis_04_项目记录附近人搜索和热点数据

1.实现效果,获得用户登录经纬度地址,找出用户周围的小区。实现思路: 使用Redis的geospatial类型存储小区地址,通过georadius 方法实现附近人搜索2.代码实现:controller/** * * @Description:获取当前位置50km范围内的坐标 * @Author: hdh * @Date: 2021/1/12 * @param mapX: 经度 * @param mapY: 维度 * @return

2021-06-25 16:50:50 80

原创 Redis_03_SpringBoot整合 redisTemplate

SpringBoot整合SpringBoot 操作数据:spring-data jpa jdbc mongodb redis !SpringData 也是和SpringBoot其名的项目!1.整合测试SpringBoot2.x之后,原来使用的jedis被换成了lettuce2.jedis和lettuce的区别:jedis采用直连接,多个线程操作的话,是不安全的,如果想避免不安全,需要使用jedis poollettuce:底层使用netty,实例可以在多个线程中进行共享,不存在线程不安全的情况

2021-06-25 16:42:32 245

原创 Redis_02_redis实现事务和乐观锁

Redis 事务1.Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。2.正常执行事务!127.0.0.1:6379> multi #开启事务OK127.0.0.1:6379(TX)&gt

2021-06-25 16:35:34 37

原创 Redis_01_redis五大基础类型和三大特殊类型

1.RedisRedis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。性能极高 – Redis能读的速度是110000

2021-06-25 16:23:15 110

原创 Redis_08_Redis实现分布式锁

1.为什么需要分布式锁。当我们的应用程序,有多个实例,部署在多个服务器上时。当我们进行对操作库存,秒杀等操作时,一定需要加锁保证我们的库存数量被正确的赋值,但是我们的Lock锁,Synchronized锁都是基于我们的JVM的,但是我们的项目时多实例,部署在多个应用服务器的,这时候我们的本地锁就不能保证我们操作的原子性了。这时候我们需要一个服务器级别的锁,也就是分布式锁。2.分布式锁的实现基于Redis分布式锁,其实原理是就是多台机器,去争抢一个资源,谁争抢成功,那么谁就持有了这把锁,然后去执行后续的

2021-06-25 16:14:26 58

原创 新项目常见的功能点

1.统一返回结果集(状态码可以单独提取出一个公共常量类)/** * @description: 统一返回结果集 * @author:hdh * @date:2021-05-07 15:47 **/@Datapublic class ResultVo implements Serializable { public static final int CODE_ERROR = 404; //未知异常 public static final int CODE_OK = 20

2021-06-25 15:57:59 165

原创 重入锁和不可重入锁

偶然看到公众号推荐了一篇重入锁和非重入锁,结合它写的可重入锁 案例一起探讨一下?1.重入锁和不可重入锁?可重入锁:当一个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,而其他的线程是不可以的。例如synchronized 和 ReentrantLock 都是可重入锁。不可重入锁:当一个线程获取锁对象之后,必须等待该线程释放锁才可以获取其他对象的锁,否则会所阻塞。例如Lock锁,都是不可重入锁2.可重入锁意义防止锁阻塞3.不可重入锁和ReentrantLock以及Synchronzied

2021-06-24 17:59:50 1924 1

原创 定时 任务

1.系统级别的定时任务: 临时文件清理、系统信息采集、日志文件切割2.用户级别的定时任务: 定时向互联网同步时间、定时备份系统配置文件、定时备份数据库的数据。1.使用SpringBoot创建定时任务(常用)基于注解(@Scheduled),实现定时任务BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口package org.springframework.beans.factory.config;import org.springframework.beans

2021-06-22 16:04:24 1317

原创 springBoot1-自动装配

微服务先看完 微服务和组件化微服务的未来初探:springBoot的自动装配在pom.xml中父工程下的 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE</version

2021-04-22 17:42:38 82

原创 Linux项目部署shell脚本

#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改APP_NAME=xxxxxxxxxxx.jar#使用说明,用来提示输入参数usage() { echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" exit 1}#检查程序是否在运行is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #如果不存在返回1,存

2021-04-08 10:24:36 128

原创 Java过滤器拦截器

1

2021-04-08 10:23:03 168 1

原创 ExcelUtils

#POI 导出2003excel##转换方式 JavaBean转Excel <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency>工具类/** * @description: 包装类 * @au

2021-04-07 16:11:49 139 1

空空如也

空空如也

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

TA关注的人

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