自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (5)
  • 收藏
  • 关注

原创 SpringBoot 服务接口限流

前言  在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。限流可以认为服务降级的一种,限流通过限制请求的流量以达到保护系统的目的。  一般来说,系统的吞吐量是可以计算出一个阈值的,为了保证系统的稳定运行,一旦达到这个阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。否则,很容易导致服务器的宕机。常见限流算法计数器限流  计数器限流算法是最为简单粗暴的解决方案,主要用来限制总并发数,比如数据库连接池大小、线程池大小、接口访问并

2021-12-24 15:18:48 5463 4

原创 Spring aop 五种通知类型

Spring aop 五种通知类型spring aop 的五种通知类型前置通知 Before advice:在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常后置通知 After returning advice:在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行异常通知 After throwing advice:在连接点抛出异常后执行最终通知 After (finally) advice:在连接点执行完成后执行,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内

2021-12-20 17:47:47 9657

原创 Redis 实现分布式锁

Redis 实现分布式锁前言什么是分布式锁  分布式锁是控制分布式系统之间同步访问共享资源的一种方式。  在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,这个时候,便需要使用到分布式锁。下面将以电商系统商品扣减为例在一个电商系统中,如果一个客户进行下单操作,那么对应的要对实际的库存进行减扣操作,基于这样的一个场景,就会出现超卖的问题基础代码package com.exa

2021-12-17 17:55:40 1400

原创 Redis 持久化方式及配置

Redis 持久化方式  Redis持久化的意义在于故障恢复。如果仅仅把Redis中的数据存放在内存中,遇到突发的灾难性故障时,Redis宕机,通过重启服务器并恢复进程后,内存中的数据会全部丢失。即便是做了文件持久化,还是会有风险,比如Redis所在的服务器坏了,或者磁盘烧了,因此业界的解决方案是文件持久化+定期将持久化文件同步至云存储中,即便Redis所在服务器出现问题,只要再搭建一套Redis环境,将持久化文件从云端下载到本地,重新导入,即可立刻恢复大部分的数据,重新对外提供服务。(云存储,国外常用

2021-11-10 10:54:20 1665 1

原创 Redis 过期策略+内存淘汰策略

Redis 过期策略Redis 的过期策略是定期删除+惰性删除定期删除:每隔一段时间执行一次删除过期 key 操作。惰性删除:在请求获取某个 key 时,redis 主动查询它是否设置了过期时间,如果到期了则将其物理删除,返回 null(用的时候再检查删除)。定期删除 redis 默认每 100ms 检查是否有过期的key,有过期的 key 则删除。需要说明的是redis不是每个 100ms 将所有的 key 检查一次,而是随机抽取进行检查。如果过期的 key 比例超过 1/4,就重复次步骤 ,

2021-11-05 10:43:50 101

原创 Springboot 整合 Redis 简单上手

Springboot 整合 Redispom 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.apache.commons&l

2021-10-23 01:54:05 83

原创 synchronized 八锁现象,搞懂 synchronized 的使用问题

一.同一个对象,两个线程分别调用对象的两个加锁方法package com.example.demo.module.synchronized8Test;import java.util.concurrent.TimeUnit;public class Test { public static void main(String[] args) { Phone phone = new Phone(); new Thread(phone::sendSms,"A"

2021-10-13 09:36:17 365

原创 Java jdk1.8源码分析 HashMap 底层实现原理

get 源码分析 /** * Returns the value to which the specified key is mapped, * or {@code null} if this map contains no mapping for the key. * * <p>More formally, if this map contains a mapping from a key * {@code k} to a value {@c

2021-10-09 18:42:16 256 1

原创 单例设计模式

Java 单例模式什么是单例模式?单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。饿汉式(静态变量)package com.example.demo.module;/** * 饿汉式单例模式 静态变

2021-08-09 18:13:54 70

原创 服务监控实例

Java 服务监控效果pom 添加依赖:<!-- 获取系统信息 --><dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</artifactId> <version>5.7.5</version></dependency><!-- 访问系统本地库 --><d

2021-08-05 20:27:59 430

原创 logback 配置

logback 配置logback:<?xml version="1.0" encoding="UTF-8"?><configuration> <!-- 日志存放路径 --> <property name="log.path" value="/home/testProject/logs" /> <!-- 日志输出格式 --> <property name="log.pattern" value="%d{HH:mm:s

2021-08-03 15:38:37 90

原创 Springboot 发送邮件

Springboot 发送邮件本文以 QQ 邮箱发送为例邮件发送需要开启邮箱的 pop3 服务QQ 邮箱开启位置:设置 - 账户 - POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务点击开启会要求进行验证,验证后会得到一个授权码,授权码需写入代码配置中pom 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId&

2021-06-23 18:46:49 447

原创 页面打印插件 jquery.jqprint.js 插件使用实例

jquery.jqprint.js 插件使用实例jquery.jqprint.js 插件下载jqprint 是一个基于jQuery编写的页面打印的一个小插件,可以对页面指定元素的内容进行打印,使用非常方便。很多小伙伴使用的时候会出现 “Cannot read property ‘opera’ of undefined” 错误问题,这是jqery使用版本过高出现的兼容问题。这时候需要引入 jquery 迁移辅助插件 <script src="http://www.jq22.com/jquery/

2021-06-21 17:20:23 2065

原创 二维码生成插件 jquery.qrcode.min.js 使用实例

二维码生成插件 jquery.qrcode.min.js 使用实例jquery.qrcode.min.js 插件下载页面使用demo<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>Title</title></head><body&

2021-06-18 14:34:23 1603

原创 页面手写签名插件 jSignature.min.js 使用实例

页面手写签名插件 jSignature.min.js 使用jSignature.min.js 插件下载页面使用案例<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"><head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <met

2021-06-18 11:45:50 2229

原创 浏览器视频播放插件 video.min.js 使用实例

浏览器视频播放插件 video.min.js 使用video.min.js插件下载页面引入插件<link rel="stylesheet" th:href="@{/static/css/video-js.min.css}"><script th:src="@{/static/js/video.min.js}"></script>页面中使用<!-- poster=" " 设置封面图 preload="auto" 预加载 vjs-big-play-c

2021-06-18 09:39:42 2081

原创 Springboot 整合 Shiro

Springboot 整合 ShiroApache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。下面我们来看看 Springboot 项目中如何整合使用 Shiro.整合后项目结构Springboot 整合 Shiro1.pom 文件添加 shiro 依赖<!-- shiro权限依赖 --><dependency>

2021-06-16 17:04:41 261

原创 Springboot 整合 Spring Security

Springboot 整合 Spring Security项目最终目录结构一.Spring Security 引入1.pom 文件引入 spring security 依赖<!-- spring security --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</

2021-06-13 19:52:25 842 2

原创 移动端页面下拉刷新、上拉加载插件使用

移动端页面下拉刷新、上拉加载插件使用插件地址移动端下拉刷新、上拉加载更多 Zepto/jQuery插件下载插件并导入到项目中html 中使用demo<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"><head> <meta http-equiv="X-UA-Compatible" content="IE=ed

2021-06-07 21:57:31 493 1

原创 Springboot 实现国际化

Springboot 实现国际化项目目录结构创建国际化配置文件在项目 resources 目录下创建 i18n 文件夹,用于存放国际化配置创建 login.properties 默认语言配置文件(这里以登录页为例)再创建对应中文语言配置 login_zh_CN.properties ,创建完后,会发现配置文件自动合并继续创建对应英文配置 login_en_US.properties ,在合并文件处右击添加一个配置文件添加 en_US 英文配置login.properties:默认

2021-06-01 12:00:48 479

原创 Springboot 整合 Thymeleaf

Springboot 整合 Thymeleafpom 引入 thymeleaf 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>yml 文件添加 thymeleaf 配置spring: # thymele

2021-06-01 09:43:26 224

原创 Springboot 整合 Swagger2

Springboot 整合 Swagger2现如今,前后端分离已经逐渐成为互联网项目一种标准的开发方式,前端与后端交给不同的人员开发,但是项目开发中的沟通成本也随之升高,这部分沟通成本主要在于前端开发人员与后端开发人员对WebAPI接口的沟通,Swagger2 就可以很好地解决,它可以动态生成Api接口文档,降低沟通成本,促进项目高效开发。项目整合后目录结构pom.xml 依赖<?xml version="1.0" encoding="UTF-8"?><project xml

2021-05-14 11:11:35 157

原创 Java 返回结果集统一封装

Java 返回结果集统一封装对后台数据结果集封装,返回统一格式数据,方便统一管理Rpackage com.example.demo.common.dto;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.example.demo.common.constant.Constants;import java.io.Serializable;/** * 返回前端 数据封闭类 */pu

2021-05-13 15:40:30 1584 2

原创 Springboot 整合 Mybatis-Plus

Springboot 整合Mybatis-Plus项目整合后目录结构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/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO

2021-05-12 19:36:46 136 1

原创 SpringBoot 自定义banner及网站图标

SpringBoot 自定义banner及网站图标什么是banner?SpringBoot项目启动时会在控制台打印一个默认的启动图案,这个图案就是我们要讲的banner。自定义banner可自己进行设计或通过网上制作工具进行banner图案制作,网上有许多banner制作网站,比如 https://www.bootschool.net/ascii在项目src/main/resources目录下面创建banner.txt,将制作好的beanner字符粘贴到beanner.txt文件中。启动

2021-05-12 14:44:29 691 2

原创 SSM 配置实例

SSM配置实例项目为Maven项目项目目录结构1.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/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/P

2021-05-08 23:57:57 81 1

jquery.jqprint.zip

jquery 打印插件

2021-06-21

jquery.qrcode.min.zip

qrcode 二维码生成插件

2021-06-18

jSignature.min.noconflict.zip

jSignature插件

2021-06-18

jSignature.zip

jSignature插件

2021-06-18

video插件.zip

video插件

2021-06-17

空空如也

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

TA关注的人

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