springboot2.0实战
文章平均质量分 79
葫芦胡
每天进步一点点
展开
-
《Spring Cloud Alibaba实战》系列-集成dubbo实现远程RPC调用,以nacos作为注册中心
本文是Spring Cloud场景下使用Dubbo远程调用,以Nacos替换Zookeeper为注册中心的案例,如果单纯Dubbo融合Nacos作为注册中心,请参考 ☞官方文档;对Nacos不了解的可以参考之前☞Nacos文章;1. Maven依赖首先增加依赖版本统一管理 <properties> <!-- 统一版本管理 --> <spring-cloud.version>Hoxton.RELEASE</sprin原创 2021-09-30 17:54:24 · 694 阅读 · 0 评论 -
MybatisPlus自动填充公共字段及特定类型属性设置默认值
前言MybatisPlus是一个 MyBatis的增强工具,集成了mybatis和hibernate各自的优点,所以很受一些企业的喜爱。目前我们公司就在使用,确实特别好用。本文重点介绍自动填充公共字段及特定字段类型设置默认值的方法。之前写过一篇关于JPA和mybatis自动填充的文章,有兴趣的小伙伴可以进行查看:链接属性填充首先MP为我们提供了元数据处理接口MetaObjectHandler,里面提供了很多默认填充实现方法供我们使用。其中insertFill和updateFill是新建和更新的填充方原创 2021-01-14 10:41:29 · 8451 阅读 · 5 评论 -
SpringCloud项目升级seata遇到的坑,并使用Docker安装新版seata服务端
前言最近升级了我的开源项目的SpringCloudAlibaba版本(2.2.3.RELEASE)后,项目启动报了一堆错。后来一步一坑的解决,所以此处记录下,希望能帮助到和我一样升级遇到一堆坑的小伙伴。升级前使用版本:spring-boot:2.2.6.RELEASE;spring-cloud:Hoxton.SR1;spring-cloud-alibaba:.2.2.0.RELEASE;前因有一个小伙伴私信我说,我的开源项目中seata没法用,一开始我没在意,因为整合每个组件我都会测试ok原创 2020-10-20 17:55:52 · 7509 阅读 · 3 评论 -
《SpringBoot2.0 实战》系列-整合MinIo实现文件上传、下载
MinIo简介MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO官方文档:https://docs.min.io/cn/安装docker 安装:docker run -p 9000:9000 --name minio1 \ -e "MINIO_ACCESS_KEY=gou原创 2020-11-17 16:32:12 · 2192 阅读 · 1 评论 -
《SpringBoot2.0 实战》系列-整合shiro、Jwt实现鉴权验证,及Jwt续期实现
简介Apache Shiro 是 Java 的一个安全框架,相对于SpringSecurity更简单、轻量。需要整合SpringSecurity的可移步《springBoot整合springsecurity、jwt-token实现权限验证》。本文主要介绍shiro的使用。JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。分析首先我们需要了解shiro的三大主体。1、Subject:主体,代表了当前 “用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Su原创 2020-10-16 17:47:27 · 684 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-整合p6spy实现sql打印日志功能
前言sql日志打印功能,在开发中很实用,直接将日志sql拷贝到数据库执行,就能很快发现问题。最近项目中也需要用到这个功能,所以记录此文mark下。整合引入相关依赖<!--p6spy 打印sql--><dependency> <groupId>com.github.gavlyukovskiy</groupId> <artifactId>p6spy-spring-boot-starter</artifactId>原创 2020-10-15 14:46:56 · 1538 阅读 · 3 评论 -
Fork/Join框架原理及应用
简介原理ForkJoin是由JDK1.7后提供多线并行处理框架。ForkJoin的框架的基本思想是分而治之。什么是分而治之?就是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果。以下是我理解的流程原理图。更加直观一点的图如下:我们还需要了解它的两个核心类:ForkJoinTask,就是执行具体处理逻辑的类,该类提供了在任务中执行fork和join的机制。但通常情况下我们不需要直接继承ForkJoinTask类,只需要继承它的2个子类:RecursiveAction原创 2020-09-29 13:44:37 · 1004 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-整合kafka实现消息发送、消费
之前写过一篇关于ActiveMq的博文,有兴趣的小伙伴可以点击查看。如果对消息队列的性能要求不高,那么使用ActiveMq已足够。但是如果使用消息队列的业务量非常大时,我们需要重新选择一款性能高的消息队列- kafka。以下是对比表:对比KafkaActiveMQ可用性非常高,分布式,多副本备份高,基于主从架构实现的高可用性存储接口文件存储,而且这些文件是顺序存储的消息持久化机制有JDBC,KahaDB和LevelDB单机吞吐量吞吐量非常大,可以达到10万级原创 2020-08-04 13:02:31 · 1141 阅读 · 1 评论 -
《SpringBoot2.0 实战》系列-整合WebSocket实现高性能实时消息推送
前言实时推送消息,在web项目中还是很常用的,比如最近接到一个需求,需要给所有登录的人推送一条广播,就可以使用websocket实现。当然实时消息通知这些也都可以用WebSocket实现。本文使用的框架是一位大佬封装过的 netty+websocket框架,使用起来和websocket一样,但是性能高很多。有兴趣的可以看源码:https://gitee.com/Yeauty/netty-websocket-spring-boot-starter.git。如何开始增加相应依赖<dependen原创 2020-07-06 18:36:59 · 2245 阅读 · 1 评论 -
《Spring Cloud Alibaba实战》系列-Easy Excel 导出excel自定义头部样式
前言最近测试测试时,提了一个需求,导入模板头部的必填项需要标红;因为我用的动态导出模板,不像之前公司那样,直接定义好一个excel模板,然后提供下载,那样直接修改excel模板就可以了。但是动态模板需要在导出时设置下头部样式实现。再经历了各种尝试后,本文坐下记录。如果需要导入导出功能的,请参考前面的一篇《Easy Excel实现Excel的导入导出》。核心策略类策略类中的属性可以根据需求自己定义,我这里定了头部必填需要的几个属性。/** * 单元自定义样式 * * @author gourd原创 2020-07-02 11:07:32 · 1542 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-整合thymeleaf 实现模板文件转图片
前言之前写了两篇关于动态模板转pdf和word的文章:《模板文件转pdf打印》、《模板文件转word打印》,最近又接到一个需求需要转图片,所以本文做下记录。如何开始thymeleaf 依赖包<!-- thymeleaf --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf&l原创 2020-06-29 10:01:51 · 1489 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-整合thymeleaf 实现模板文件转word打印
前言最近,有小伙伴看了我的《模板文件转pdf打印》文章后,私信问我,有没有转word的demo。当时只能遗憾的说没有。所以就有了这篇文章。如何开始thymeleaf 依赖包<!-- thymeleaf --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifa原创 2020-05-25 12:52:33 · 2090 阅读 · 0 评论 -
gateway网关整合Nacos并实现动态路由
简介gateway的路由信息在项目启动时会被初始化好,如果我们需要增加路由,就需要重启网关项目,本文介绍下gateway网关整合Nacos来实现动态路由,原理就不介绍了,直接上代码。如何开始增加依赖包: <!--spring cloud nacos config --> <dependency> <groupId>com....原创 2020-04-28 10:53:53 · 7575 阅读 · 8 评论 -
《SpringBoot2.0 实战》系列-集成Skywalking调用链监控系统
简介skywalking是一个开放源码的,用于收集、分析,聚合,可视化来自于不同服务和本地基础服务的数据的可观察的平台;skywalking提供了一个简单的方法来让你对你的分布式系统甚至是跨云的服务有清晰的了解。它更像是一个现代的系统性能管理,特别为分布式系统而设计。安装我是通过docker-compose安装,准备docker-compose.yml文件version: '3'se...原创 2020-04-17 10:46:49 · 2507 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-整合Activemq实现点对点、发布订阅模式共存、消息持久化、重试等
简介Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。作用应用解耦 异步通信 流量削峰 消息通讯安装提供docker的安装方式,其他方式网上也都有很多https://blog.csdn.net/HXNLYW/article/de...原创 2020-03-26 11:04:30 · 935 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-整合FlyingSaucer + thymeleaf 实现模板文件转pdf打印
前言最近,接到一个模板打印pdf的任务,后来网上找了很多案例,本文做下记录。如何开始添加依赖包<!-- thymeleaf --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte...原创 2020-05-22 18:00:25 · 3543 阅读 · 3 评论 -
《SpringBoot2.0 实战》系列-集成MybatisPlus并配置动态数据源
简介MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。整合了Hibernate和Mybatis的有点,即简化了单表基础的操作,又可自定义sql语句。官方文档:https://mp.baomidou.com/guide/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般...原创 2020-01-06 21:19:12 · 3351 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-AOP实现防止接口重复提交
前言表单的重复点击是web开发中经常遇到的问题,尤其是测试工程师测试的时候,通常情况下都是前端做了防呆处理(提交按钮点击后灰化掉,等接口返回再回置)。其实后端也可以做相应的限制,限制同一个账号在某个时间段内调用某一个接口时,同样的参数只能调用一次。实现逻辑1.自定义防重复提交的注解和切面2.在需要验证的接口上增加注解(一般是创建、修改的接口)3.以每次调用的 用户唯一标识(u...原创 2019-07-03 14:49:23 · 5594 阅读 · 5 评论 -
《SpringBoot2.0 实战》系列-集成kaptcha实现验证码的生成校验
简介kaptcha-spring-boot-starter 基于 springBoot 和 Google Kaptcha 验证码组件,支持jdk1.7+,kaptcha-spring-boot-starter可以很方便的集成验证码到你的系统中。快速开始增加相关依赖包<!--kaptcha 图形验证码--><dependency> <grou...原创 2019-08-22 13:46:25 · 798 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-集成redisson实现分布式锁
前言最近面试总是会被问到有没有用过分布式锁、redis锁,由于平时很少接触到,所以只能很无奈的回答“没有”。回来之后就恶补了一下,本文主要做下记录,通过SpringBoot整合redisson来实现分布式锁,并结合demo测试结果。首先看下大佬总结的图来源:https://www.cnblogs.com/qdhxhz/p/11046905.html正文增加依赖<!-...原创 2019-11-14 16:33:27 · 3773 阅读 · 5 评论 -
《SpringBoot2.0 实战》系列-集成JMS实现邮件发送
简介JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。正文增加依赖本文用的spring-boot-starter-mail,不用显示指定版本号...原创 2019-03-07 17:23:02 · 786 阅读 · 0 评论 -
《SpringBoot2.0 实战》系列-集成Quartz定时任务(持久化到数据库)
前言之前写过一篇spring整合quartz的过程的文章,但是配置比较繁琐,而且持久化脚本需要手动生成到数据库,比较笨拙;现在大多数项目都使用了springboot,所以本文主要讲springboot与quartz的完美整合,简化配置、持久化数据并自定义quartz数据源。正文一、增加依赖我们使用的spring-boot-starter-quartz,所以不用显示指定版本号...原创 2019-07-08 13:49:35 · 9891 阅读 · 20 评论 -
《SpringBoot2.0 实战》系列-异步多线程调用
前言:异步在工作中越来越多的被使用到,比如:推送提醒、服务之间调用、数据同步等。最近我就遇到一个需求,【发布公告的时候需要调用第三方的接口发送短信】,这时我们就可以用异步实现短信发送,即可保证接口的响应速度,又可保证接口不受三方接口的超时、异常影响。聊聊异步和同步:同步:一件事一件事的做;【吃饭、睡觉、打豆豆】就是一个同步的过程;异步:多件事一起做;【边吃边聊】就是一个异步的过程;...原创 2019-09-30 14:01:30 · 2956 阅读 · 3 评论 -
《SpringBoot2.0 实战》系列-集成Activiti6.0(案例详解)
前言最近项目中需要用到工作流审批流程,业务功能比较简单,就是员工请假,领导审批同意或者驳回的操作。本来准备自己做一套简单的审批流程(数据库记录下状态的这种),但是考虑到后期的拓展性,可能会有多审批、加签等复杂的操作,还是决定使用工作流框架,最后选择了Activiti。简介Activiti是一种轻量级,可嵌入的BPM引擎,而且还设计适用于可扩展的云架构。可以和springboot完...原创 2019-11-11 11:17:48 · 6478 阅读 · 5 评论