spring boot
文章平均质量分 62
会飞的小蜗
Java、PHP
展开
-
JWT认证原理、流程整合springboot
文章目录JWT整合spring boot3、在网关(推荐)或者为微服务项目中定义JWT拦截器4、配置JWT拦截器JWTJSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。头部(Header)头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个JSON对象。{“typ”:“JWT”,“alg”:“HS256”}在头部原创 2022-01-19 19:10:02 · 406 阅读 · 0 评论 -
elasticsearch 7.4 常用API操作之 在 spring boot 中的使用(二)
文章目录原创 2021-11-29 13:08:07 · 1922 阅读 · 0 评论 -
R 返回值实体类封装
为了团队内部的返回值统一,对于返回值的封装还是很有必要的。返回的json结构如下:{ "msg": "success", "code": 0, "data": { //返回值 ..... }}返回示例:封装好的R实体类:/** * R返回值封装 * * */package com.xunqi.common.utils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReferen原创 2021-11-05 16:32:59 · 950 阅读 · 0 评论 -
mybatis-plus 分页 查询 页码控制无效问题
1.spring boot整合mybatis-plus (这里使用的是 3.4.3.1 )<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.4.3.1</version> <scope>compile</scope>&原创 2021-10-26 11:05:46 · 954 阅读 · 0 评论 -
sharding-jdbc 分库分表后的分布式ID解决方案、取模规则
文章目录一、分布式自增ID算法---雪花算法 (snowflake,Java版)1、以下是Twitter官方原版的,用Scala写的2、Java版(常用)二、实际项目中的问题1.场景2.方案一、分布式自增ID算法—雪花算法 (snowflake,Java版)一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式、UUID、雪花算法。方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID。这种呢,优点是可以体现全局的递增趋势(优点只能想到这个),缺点呢,倒是一大堆,比如原创 2021-10-25 13:56:03 · 2030 阅读 · 0 评论 -
spring boot 整合sharding jdbc 遇到的一些问题以及实例源码
文章目录一、整合1.pom.xml 新增依赖(这里默认你项目中已经有了Mysql的依赖)2.配置3.遇到的问题“The bean 'dataSource', defined in class path resource ...”4.实际案例一、整合1.pom.xml 新增依赖(这里默认你项目中已经有了Mysql的依赖) <!-- sharding-jdbc分库分表插件 M2有bug --> <dependency> <groupId>io.原创 2021-10-22 17:29:35 · 2884 阅读 · 0 评论 -
jackson 操作 List 与 String 互转
直接看实例:package com.elq.product.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.elq.product.dao.LogsDao;import com.elq.product.entity.LogsEntity;import com.elq.product.service.IndexService;import com.fasterxm原创 2021-10-21 11:47:12 · 1431 阅读 · 0 评论 -
springboot、mybatis-plus 实体类接收参数
我们先来看下表结构:实体类:package com.elq.product.entity;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import com.fasterxml.jackson.annotation.JsonForma原创 2021-10-21 08:18:59 · 1032 阅读 · 0 评论 -
Sentinel 使用详解、熔断降级实例
文章目录1、sentinel的下载和安装2、Sentinel规则管理及推送1、原始模式2、Pull 模式3、Push 模式3、整合项目配置Sentinel,在Sentinel dashboard实现监控4、实例1.第一个实例:1、sentinel的下载和安装sentinel下载地址:https://github.com/alibaba/Sentinel/releases1.7.1下载地址: https://github.com/alibaba/Sentinel/releases/download/1.原创 2021-10-19 08:26:11 · 971 阅读 · 0 评论 -
微服务项目统一管理依赖版本,解决maven引入依赖后的unknown问题
pom文件中使用 进行控制:<?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/POM/4.0.0 http://maven.apa原创 2021-10-18 16:37:31 · 872 阅读 · 0 评论 -
Datetime数据格式返回类型定义,解决 2021-03-23T02:30:00.000+0000
当我们直接使用后台的Datetime数据时,经常会出现:2021-03-23T02:30:00.000+0000我们需要在实体类中声明一下格式即可:/*** create_time*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")private Date createTime;...原创 2021-10-14 08:04:20 · 1447 阅读 · 0 评论 -
spring定时任务
一、定时任务1、cron表达式语法:秒 分 时 日 月 周 年(其中“年”Spring不支持,也就是说在spring定时任务中只能设置:秒 分 时 日 月 周)2、cron示例3、SpringBoot整合@EnableScheduling@Scheduled实例:package com.xunqi.gulimall.seckill.scheduled;import lombok.extern.slf4j.Slf4j;import org.springframework.sch原创 2021-10-01 20:32:54 · 1023 阅读 · 0 评论 -
Nacos Config配置中心
文章目录1. 修改你的微服务模块2.在nacos config进行配置3.配置对应关系1. 修改你的微服务模块添加pom依赖:<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>创建bootstrap.pr原创 2021-09-30 15:59:34 · 652 阅读 · 0 评论 -
事务篇(二):分布式事务
二、分布式事务1、为什么有分布式事务分布式系统经常出现的异常。机器宕机、网络异常、消息丢失、消息乱序、数据错误、不可靠的TCP、存储数据丢失…分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免。2、CAP定理与BASE理论1、CAP定理CAP原则又称CAP定理,指的是在一个分布式系统中一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据原创 2021-09-27 09:24:25 · 137 阅读 · 0 评论 -
事务篇(一):spring boot 本地事务
文章目录事务一、 spring boot 本地事务Spring事务传播机制事务的特性Spring事务的配置方式1. 编程式事务管理2. 声明式事务管理事务的传播机制事务的隔离级别只读事务超时回滚规则Spring声明式事务配置参考事务一、 spring boot 本地事务本文将按照声明式事务的五个特性进行介绍:事务传播机制事务隔离机制只读事务超时回滚规则Spring事务传播机制事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部原创 2021-09-27 09:21:15 · 547 阅读 · 0 评论 -
Mybatis-Plus 乐观锁&枚举&逻辑删除&分页
文章目录前言实现案例1.配置注册到bean中2.实体类3.使用前言乐观锁的原理白话描述:创建表时我们给每条数据来创建一个version 版本号字段,它可以是 int 、DateTime 等类型,当我们进行更新操作之前,先把version字段取出,然后更新的时候把这个字段作为条件来判断,是否有其他更新操作已经操作过此条数据。实现案例假设前提:spring bootMybatis-plus都已经配置好。1.配置注册到bean中这里要说明一下,3.4 之前的版本使用的是 Optimistic原创 2021-09-26 11:24:04 · 158 阅读 · 1 评论 -
接口幂等性详解 & 实际项目中的方案
文章目录A、幂等详解一、什么是幂等性二、哪些情况需要防止三、什么情况下需要幂等四、幂等解决方案B、实际项目中的方案A、幂等详解一、什么是幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条.... 这就没有保证接口的幂等性。二、哪些情况需要防止1原创 2021-09-25 21:32:56 · 343 阅读 · 2 评论 -
RabbitMQ消费者可靠性抵达(八)
1.引入 spring-boot-starter-amqp<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2. application.properties配置# RabbitMQ配置spring.rabbitmq.hos原创 2021-09-24 09:00:34 · 102 阅读 · 0 评论 -
spring事务详解
事务1. spring boot 本地事务本文将按照声明式事务的五个特性进行介绍:事务传播机制事务隔离机制只读事务超时回滚规则Spring事务传播机制事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。隔离性(Isolation):可能有许原创 2021-09-24 08:38:32 · 161 阅读 · 0 评论 -
Spring boot 拦截器笔记
1. 实现 HandlerInterceptor 接口package com.xunqi.gulimall.order.interceptor;import com.xunqi.common.vo.MemberResponseVo;import org.springframework.stereotype.Component;import org.springframework.util.AntPathMatcher;import org.springframework.web.servlet原创 2021-09-24 08:24:45 · 111 阅读 · 0 评论 -
RabbitMQ发送端可靠性抵达(七)
文章目录1.引入 spring-boot-starter-amqp2. application.properties配置3.确认抵达4.实现1.引入 spring-boot-starter-amqp<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></depen原创 2021-09-23 09:21:44 · 129 阅读 · 0 评论 -
RabbitMQ整合到springboot项目(六)
文章目录1.引入 spring-boot-starter-amqp2. application.properties配置3.发送json数据需要进行配置(**使用MessageConvert自动转换为json**)4.使用4.1 发送4.2.监听5.@RabbitListener 和 @RabbitHandler1.引入 spring-boot-starter-amqp<dependency> <groupId>org.springframework.boot</g原创 2021-09-23 09:19:10 · 224 阅读 · 0 评论 -
SpringSession在分布式项目中的应用&原理描述
这里,我们选用spring session 的redis存储模式来解决分布式session的问题1.引入依赖(注:你的项目中要有 redis 依赖哦!) <!-- 整合springsession --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-da原创 2021-09-18 23:18:10 · 240 阅读 · 0 评论 -
密码加密方式:MD5加密 & 盐值加密
在我们项目开发中,对于密码的存储都会进行加密处理,我们可以自定义一个加密方式进行加解密后的字符串对比,也可以使用我们的md5加密(不可逆)。 //常用的MD5加密 String s = DigestUtils.md5Hex("123456"); System.out.println(s);运行结果:e10adc3949ba59abbe56e057f20f883eMD5 经过摘要算法加密可以将任何长度的字符串转化成固定长度大小,无论加密前的字符串多大,即便是1G的数据,经过M原创 2021-09-18 20:52:42 · 4601 阅读 · 0 评论 -
微服务项目中使用 spring cache + redis + lua脚本 业务实例
文章目录1.简介2.业务实例1.简介spring基于注解的缓存对于缓存声明,spring的缓存提供了一组java注解:@Cacheable:触发缓存写入。@CacheEvict:触发缓存清除。@CachePut:更新缓存(不会影响到方法的运行)。@Caching:重新组合要应用于方法的多个缓存操作。@CacheConfig:设置类级别上共享的一些常见缓存设置。1.@Cacheable注解顾名思义,@Cacheable可以用来进行缓存的写入,将结果存储在缓存中,以便于在后续调用的时原创 2021-09-13 11:39:35 · 472 阅读 · 0 评论 -
elasticsearch 7.4.2在spring boot 项目中的使用
引入依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.4.2</version></dependency>2.配置package com.atguigu.gulimall.searc.原创 2021-09-09 11:20:42 · 351 阅读 · 0 评论 -
redisson 在spring boot 开发中的分布式锁总结
1、首先,我们需要引入相关依赖(请根据你的spring boot版本)<!--redisson--><dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.13.1</version></dependency>原创 2021-09-06 14:37:39 · 163 阅读 · 0 评论 -
spring boot 项目中常用的统一异常处理
项目中,我们常用的统一异常定义主要依托于两个注解:@ControllerAdvice里面包含注解如下:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Component@ExceptionHandler包含注解如下:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented项目中的只用:定义一个异原创 2021-09-06 07:30:38 · 307 阅读 · 0 评论 -
Sprint boot 中AOP 切面的使用
一般来说,AOP的切面我们一般用于记录日志或者在执行某个方法前后进行其他时间的加强处理,主要使用了动态代理模式,这里不再进行原理的讲解,只进行实际使用的分析。1、首先,我们需要在pom文件中引入相关AOP的依赖:<!--springAOP依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st原创 2021-09-03 13:59:42 · 532 阅读 · 0 评论