- 博客(13)
- 收藏
- 关注
原创 springboot 2.x 整合rocketmq-spring-boot-starter
一、导入maven依赖,rocketmq-spring-boot-starter可在maven中央仓库查找<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.4</version></dependency>ro.
2020-07-31 17:27:02
11019
3
原创 java 实现按照时间梯度异步通知第三方接口
业务背景 在对外提供的API 接口中,处理完自身的业务逻辑后需要调用第三方系统接口,将相应的处理结果通知给对方,就像微信、支付宝支付后 异步通知支付结果一样,按照特定的时间梯度区通知第三方接口。使用技术 springboot + rocketmq + mysql...
2020-07-31 16:10:35
2164
2
原创 Springboot 中 logback.xml 日志分级别打印配置
日志级别说明:【DEBUG】Level指出细粒度信息事件对调试应用程序是非常有帮助的。【INFO】 level表明 消息在粗粒度级别上突出强调应用程序的运行过程。【WARN】 level表明会出现潜在错误的情形。【ERROR 】level指出虽然发生错误事件,但仍然不影响系统的继续运行。【FATAL】 level指出每个严重的错误事件将会导致应用程序的退出。其中等级大小为:DEBUG <INFO < WARN < ERROR < FATALlogback.
2020-05-13 15:36:38
4650
原创 【设计模式】Springboot 项目实战中使用策列+工厂模式优化代码中的if...else..
在开发过程中,经常会遇到判断某个类型字段的多种类型,通常我们会使用if..else if 或者 switch来进行一个个的判断,如果类型越来越多,写的if..else就会越来越多,代码的可读性就会越来越差,时间久了哪怕自己都有点搞不明白了,更不说他人来维护,那么为了解决这一困扰我们可以使用策略模式来对代码进行优化。策略模式的定义与特点策略(Strategy)模式的定义:...
2020-05-06 18:13:07
687
原创 springboot rabbitMQ 纯注解版 DLX 死信队列以插件形式实现消息延迟处理
1.业务应用场景在项目实战中我们可能会遇到:商城订单要求在未支付状态下30分钟后自动取消; 商品发货后15天自动收货、评价等等... 以及各种操作后要求多长时间才执行另外一个操作的业务。一般我们会想到的解决方法是利用定时任务定时查询数据库再进行相关操作,当数据量大的时候,定时任务的反复执行就会非常消耗内存,那么这个时候我们可以使用MQ消息队列中的延时消息处理来实现类似这种的业务操作。...
2019-06-20 14:10:54
2518
原创 spring boot 配置绝对路径做静态资源访问
最近经常有人问起上传文件不想用第三方文件服务器,想上传到服务器硬盘里该如何读取?其实这有N多种解决方案,比如:1.nginx 利用alias或者root静态路径映射。2.如果有专门为前端项目搭建node 服务的话,也可以蹭在node映射的文件夹下。3.使用tomcat......当然,这些应该是经常见到的操作了。但是如果我们的服务器没有这些配置,只启动一个java jar...
2019-05-10 11:49:12
7994
7
原创 使用JWT控制登录鉴权的项目如何实现单个账号只允许在一处登录的功能
使用JWT控制登录鉴权的项目如何实现单个账号只允许在一处登录的功能,也就是说在登录状态未失效的情况下,下一次登录必须踢掉上一次的登录。如果我们不做限制的话,单个账号多次登录就会产生多个token,只要未过期就都能调用接口。可能第一反应会想,用JWT实现token手动强行过期,然而JWT并未提供此功能,那么我们在项目中应该如何优雅的解决这个问题呢?<继上篇>使用redi...
2019-03-18 19:22:21
15753
12
原创 如何在SpringBoot项目中使用JWT实现接口鉴权功能
一、简介JWT: JWT由Header(请求头)、Payload(携带的用户信息)、Signature(加密后生成的签名)三部分组成,也就是我们用过JWT所眼熟的header.payload.signature。JWT可以自定义Signing Key,能够有效的防止伪造或篡改token签名。二、思考: 为什么要接口鉴权?怎样的业务场景下需要使用鉴权功能? ...
2019-03-18 18:33:05
3348
原创 记一次线程池定义出错导致execute被阻止的解决思路
使用OSS进行分片上传时,为了节省上传时间,将分好的每一片文件都单独使用一个线程进行上传。起初定义线程池,newFixedThreadPool设置为10个然后将分好的片循环丢进线程池里执行:随后shutdown掉线程池,执行以前提交的任务,但不接受新任务。看似没毛病,结果意外发现连续上传第二次的时候执行到execute竟然报java.util.concurrent....
2019-02-22 18:50:10
966
2
原创 springBoot集成Dubbo最新版本(spring-boot 2.0.3 + dubbo-spring-boot-starter 2.0.0)
前言:自dubbo 更新出了springboot版本后,各项配置都简便了许多,集成起来也很迅速。下面我们就来讲讲怎么用 spring-boot 2.0.3集成dubbo-spring-boot-starter 2.0.0(Git地址)用zookeeper做注册中心来注册dubbo服务(zookeeper自行下载安装,这里不做介绍)POM依赖:首先创建一个maven多模块项目,...
2018-09-17 19:39:28
18053
2
原创 springboot 使用mybatis-plus 配置乐观锁。
-----------------------------官方文档已更新,详细配置请访问:mybatis plus乐观锁插件进行查看----------------------------------本篇主要讲解使用springboot + mybatis-plus 开发项目的同学如何配置乐观锁插件。(本篇只是介绍如何配置,并未介绍乐观锁的实现原理,如需了解需自行查阅相关资料)首先看my...
2018-06-27 17:00:41
16006
5
原创 linux 下安装 node 及pm2
1.安装node 和npm首先在node官网找到linux版本的下载链接在linux 服务器上输入命令:wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.gz解压:tar xvzf node-v8.9.3-linux-x64.tar.gz把下载好的node文件从根目录移...
2018-05-25 18:28:33
2450
原创 linux 安装及配置mysql
# 一、检查系统是否安装其他版本的MYSQL数据首先查看机器上是否安装的有Mysql:rpm -qa | grep -i mysql#yum list installed | grep mysql#删除所有mysql (或者用: yum -y remove mysql-libs.x86_64 删除)yum -y remove mysql*# 二、安装及配置(#目录依次执行 )#...
2018-05-10 14:39:28
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人