SpringBoot
文章平均质量分 51
秋名山车神不开车
这个作者很懒,什么都没留下…
展开
-
接口幂等性解决方法
6.服务器如果短时间内重复提交这个接口,因为两次请求token是一样的,所以第二次请求的时候,服务器校验token时,redis中已经没有了刚刚被第一次删掉的token,就表示是重复操作,所以第二次请求会校验失败,不作处理,这样就保证了业务代码,不被重复执行。新增的时候添加版本号,更新的时候带着版本号去更新,版本号一致才更新处理。5.如果存在就删除key,正常执行逻辑,如果不存在就抛异常,返回重复提交的错误提示。通过控制锁的粒度来提高程序执行的性能,只锁当前的用户,相当于只锁自己。原创 2023-02-24 16:52:02 · 680 阅读 · 1 评论 -
sentinel适配 spring cloud gateway 限流、nacos 动态规则配置
Sentinel 是面向分布式服务架构的流量控制组件;可适配spring cloud gateway ,实现分布式服务架构 路由流量控制和熔断降级等功能,保障微服务的稳定性。而sentinel 限流规则可配置在nacos 服务配置中心,通过 推模式 实现sentinel 限流规则的动态修改和实时加载。网关限流是针对API Gateway 的场景定制的限流规则,可以针对不同 route 或自定义的 API 分组进行限流,支持针对请求中的参数、Header、来源 IP 等进行定制化的限流。其中网关.原创 2021-07-28 17:59:11 · 1193 阅读 · 0 评论 -
SpringBoot自定义注解+AOP的方式实现限流
1.添加依赖<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId></dependency><dependency> <groupId>com.google.guava</groupId> <artifactId>guava<...原创 2021-03-09 16:25:39 · 366 阅读 · 0 评论 -
SpringBoot自定义注解+Redis+拦截器实现限流
1.添加redis 依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.自定义注解AccessLimit@Inherited@Documented@Target({ElementType.原创 2021-03-09 15:22:26 · 372 阅读 · 3 评论 -
Springboot 使用校验框架validation校验
1.validation与 springboot 结合添加依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>2.实体上加上相关校验...原创 2021-03-08 15:20:37 · 624 阅读 · 0 评论 -
SpringBoot 项目中集成RabbitMQ消息队列,发送消息,监听消息,延迟队列
1.添加依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2.spring配置文件spring: rabbitmq: addresses: port: 5672 usernam...原创 2021-03-07 14:18:39 · 661 阅读 · 2 评论 -
springBoot +AOP+注解记录系统操作日志
1. 创建日志表CREATE TABLE `dyyy_operation_log` ( `id` bigint NOT NULL COMMENT '主键', `operation_id` bigint DEFAULT NULL COMMENT '操作id', `user_id` bigint DEFAULT NULL COMMENT '用户id', `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai...原创 2021-01-29 16:32:21 · 198 阅读 · 0 评论 -
任务调度,XXL-JOB实战
1.引入依赖包<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.2.0</version></dependency>2.引入配置文件@Slf4j@Configuration@EnableConfigurationProperti原创 2021-01-15 09:50:47 · 354 阅读 · 1 评论 -
fegin服务之前传递用户信息
1.FeginConfig 配置@Configuration@Slf4jpublic class FeignConfig implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { HttpServletRequest request = getServletRequest(); if (null == request)原创 2021-01-14 15:14:50 · 1539 阅读 · 0 评论 -
springBoot+nacos+dubbo 集成 nacos注册中心
1.dubbo依赖包<properties> <dubbo.version>2.7.8</dubbo.version></properties><dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> &l..原创 2021-01-10 09:26:45 · 4322 阅读 · 3 评论 -
springBoot+jwt+redis 拦截器实现登录 返回token
1.jwt 生产token 也可以用MD5 生成token@Component@Slf4jpublic class JwtUtil { /** * 过期时间 */ private static String accessTokenExpireTime; /** * JWT认证加密私钥(Base64加密) */ private static String encryptJWTKey; /** * 解决@Val原创 2021-01-03 15:08:26 · 911 阅读 · 0 评论 -
在拦截器中保存用户登录信息
1.新增登录用户对象UserInfo@Datapublic class UserInfo implements Serializable { private Long id; private Long userId; private String nickname; private String mobile;}2.新增当前线程对象UserContextpublic class UserContext { private static T..原创 2021-01-03 14:51:27 · 1153 阅读 · 2 评论 -
springBoot+shiro+jwt+redis 用户权限管理
1.相关依赖包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>${shiro.spring.version}</version> </dependency>原创 2020-12-06 14:39:56 · 2649 阅读 · 0 评论 -
springboot+mybatisplus使用注解多数据源整合
1.主要依赖包<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version></dependency><dependency> <groupId>com.baomidou<原创 2020-12-06 09:46:10 · 606 阅读 · 0 评论 -
java Springboot集成RabbitMQ
前提 已经安装RabbitMQ1、配置pom文件,添加spring-boot-starter-amqp的支持<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId...原创 2019-06-14 17:59:28 · 169 阅读 · 0 评论 -
利用idea快速创建一个StringBoot项目
1.利用idea快速创建一个项目首先IDEA新建一个项目,File-New-Project-Spring Initializr,然后Next,如下图:第二步 如下,然后下一步然后继续下一步下一步,点击完成项目创建完成,如下图新建一个Controller 来测试,如下图启动项目 端口默认是8080,也可以在application.properti...原创 2019-04-02 17:40:31 · 464 阅读 · 0 评论