SpringBoot
文章平均质量分 95
pdai
10+,海归,外资100强,专家研究员
展开
-
SpringBoot定时任务 - Spring自带的定时任务是如何实现的?有何注意点?
通过前文我们基本梳理了定时任务体系:Timer和ScheduledExecutorService是JDK内置的定时任务方案,以及Netty内部基于时间轮实现的HashedWheelTimer,再到Quartz以及分布式任务(ElasticJob,xxl-job等等)。对于Springboot简单应用,还可以采用Spring自带task方式,本文主要介绍Spring自带的Task的案例和其实现方式。@pdai。...原创 2022-08-05 07:56:49 · 374 阅读 · 1 评论 -
SpringBoot定时任务 - 开箱即用分布式任务框架xxl-job
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。如下内容来源于xxl-job官网1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;...原创 2022-08-03 07:38:27 · 423 阅读 · 0 评论 -
SpringBoot定时任务 - 什么是ElasticJob?如何集成ElasticJob实现分布式任务调度?
使用 ElasticJob 能够让开发工程师不再担心任务的线性吞吐量提升等非功能需求,使他们能够更加专注于面向业务编码设计; 同时,它也能够解放运维工程师,使他们不必再担心任务的可用性和相关管理需求,只通过轻松的增加服务节点即可达到自动化运维的目的。ElasticJob-Lite: 定位为轻量级无中心化解决方案,使用 jar 的形式提供分布式任务的协调服务。Elasticjob-lite的案例- SpringBoot集成定时任务 - 分布式Elasticjob-lite方式ElasticJob-Cloud:原创 2022-08-02 07:40:03 · 281 阅读 · 0 评论 -
SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。它的特点如下注: 上图来源于https://www.cnblogs.com/jijm123/p/14240320.html当程序突然被中断时,如断电,内存超出时,很有可能造成任务的丢失。 可以将调度信息存储到数据库里面,进行持原创 2022-08-01 07:48:10 · 2988 阅读 · 1 评论 -
SpringBoot集成文件 - 如何基于POI-tl和word模板导出庞大的Word文件?
如下内容来源于,poi-tl官网。poi-tl(poitemplatelanguage)是Word模板引擎,使用Word模板和数据创建很棒的Word文档。优势它还支持自定义插件,如下是官网代码仓库支持的特性Feature✅Text✅Picture✅Table✅Chart✅Markdown✅WordSDT✅Textbox✅Style✅Merge。...原创 2022-07-31 17:11:20 · 1122 阅读 · 0 评论 -
SpringBoot数据库管理 - 用flyway对数据库管理和迁移
Flyway是一款数据库迁移(migration)工具。简单点说,就是在你部署应用的时候,帮你执行数据库脚本的工具。Flyway支持SQL和Java两种类型的脚本,你可以将脚本打包到应用程序中,在应用程序启动时,由Flyway来管理这些脚本的执行,这些脚本被Flyway称之为migration。PS本质上和liquibase机制一致。按照verion的顺序(和数据库中的更新记录对比,找到未更新的),更新如下更新记录如下。...原创 2022-07-20 07:28:45 · 488 阅读 · 0 评论 -
SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?
Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。其优点主要有以下支持几乎所有主流的数据库,目前支持包括Oracle/SqlServer/DB2/MySql/Sybase/PostgreSQL等各种数据库为何会出现Liquibase这类工具呢。..原创 2022-07-19 07:31:23 · 248 阅读 · 0 评论 -
SpringBoot接口 - API接口有哪些不安全的因素?如何对接口进行签名?
**}原创 2022-07-18 07:26:25 · 1017 阅读 · 0 评论 -
SpringBoot接口 - 如何生成接口文档之非侵入方式(通过注释生成)Smart-Doc?
smart-doc是一款同时支持JAVARESTAPI和ApacheDubboRPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型定义推导的理念,完全基于接口源码来分析生成接口文档,不采用任何注解侵入到业务代码中。你只需要按照java-doc标准编写注释,smart-doc就能帮你生成一个简易明了的Markdown、HTML5、PostmanCollection2.0+、OpenAPI3.0+的文档。零注解、零学习成本、只需要写标准JAVA注释。...原创 2022-07-15 07:32:23 · 193 阅读 · 0 评论 -
SpringBoot接口 - 如何生成接口文档之Swagger技术栈?
OpenAPI 规范(OAS)定义了一个标准的、语言无关的 RESTful API 接口规范,它可以同时允许开发人员和操作系统查看并理解某个服务的功能,而无需访问源代码,文档或网络流量检查(既方便人类学习和阅读,也方便机器阅读)。正确定义 OAS 后,开发者可以使用最少的实现逻辑来理解远程服务并与之交互。此外,文档生成工具可以使用 OpenAPI 规范来生成 API 文档,代码生成工具可以生成各种编程语言下的服务端和客户端代码,测试代码和其他用例。官方GitHub地址: OpenAPI-Specificat原创 2022-07-14 07:27:27 · 171 阅读 · 0 评论 -
SpringBoot接口 - 如何优雅的写Controller并统一异常处理?
如果我们不统一的处理异常,经常会在controller层有大量的异常处理的代码, 比如:那怎么实现统一的异常处理,特别是结合参数校验等封装?对于400参数错误异常对于自定义异常对于其它异常Controller接口(接口中无需处理异常)运行测试这里用postman测试下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DH0L3pwF-1657668397711)(https://pdai.tech/_images/spring/springboot/springbo原创 2022-07-13 07:27:17 · 352 阅读 · 0 评论 -
SpringBoot接口 - 如何优雅的对参数进行校验?
后端对前端传过来的参数也是需要进行校验的,如果在controller中直接校验需要用大量的if else做判断以添加用户的接口为例,需要对前端传过来的参数进行校验, 如下的校验就是不优雅的:针对这个普遍的问题,Java开者在Java API规范 (JSR303) 定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate vali原创 2022-07-12 07:22:42 · 197 阅读 · 0 评论 -
SpringBoot接口 - 如何优雅的对接口返回内容统一封装?
Representational State Transfer,翻译是“表现层状态转化”。可以总结为一句话:REST 是所有 Web 应用都应该遵守的架构设计指导原则。面向资源是 REST 最明显的特征,对于同一个资源的一组不同的操作。资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词。REST 要求,必须通过统一的接口来对资源执行各种操作。对于每个资源只能执行一组有限的操作。符合 REST 设计标准的 API,即 RESTful API。REST 架构设计,遵循的各项标准和准原创 2022-07-11 07:16:43 · 335 阅读 · 0 评论 -
SpringBoot开发 - 什么是热部署和热加载?devtool的原理是什么?
严格意义上,我们需要区分下热部署和热加载, 对于Java项目而言:热部署热加载LiveLoad是提供浏览器客户端自动加载更新的工具,分为LiveLoad服务器和Liveload浏览器插件两部分; devtools中已经集成了LiveLoad服务器,所以如果我们开发的是web应用,并且期望浏览器自动刷新, 这时候可以考虑LiveLoad.同一时间只能运行一个LiveReload服务器。 开始应用程序之前,请确保没有其他LiveReload服务器正在运行。如果从IDE启动多个应用程序,则只有第一个应用程序将支持原创 2022-07-10 17:44:10 · 328 阅读 · 0 评论 -
SpringBoot开发 - 如何定制自己的Banner?还能用图片?
我们在启动Spring Boot程序时,有如下Banner信息:那么如何自定义成自己项目的名称呢?在application.yml中添加配置在resource下创建banner.txt,内容自定义:修改后,重启的app的效果SpringApplication还可以设置自定义的Banner的接口类[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4SGYeFwx-1657363965931)(https://pdai.tech/_images/spring/springboo原创 2022-07-09 18:53:25 · 393 阅读 · 0 评论 -
常用开发库 - MapStruct工具库详解
常用开发库 - MapStruct工具库详解MapStruct是一款非常实用Java工具,主要用于解决对象之间的拷贝问题,比如PO/DTO/VO/QueryParam之间的转换问题。区别于BeanUtils这种通过反射,它通过编译器编译生成常规方法,将可以很大程度上提升效率。@pdai为什么会引入MapStruct这类工具首先看下这类工具出现的背景。@pdaiJavaBean 问题引入在开发的时候经常会有业务代码之间有很多的 JavaBean 之间的相互转化,比如PO/DTO/VO/Query原创 2021-03-16 09:12:21 · 639 阅读 · 0 评论 -
单元测试 - SpringBoot2+Mockito实战
单元测试 - SpringBoot2+Mockito实战在真实的开发中,我们通常是使用SpringBoot的,目前SpringBoot是v2.4.x的版本(SpringBoot 2.2.2.RELEASE之前默认是使用 JUnit4,之后版本默认使用Junit5);所以我们写个基于SpringBoot2.4+H2的内存库的简单例子,同时加点必要的单元测试。@pdai文章目录单元测试 - SpringBoot2+Mockito实战SpringBoot对单测试的差异项目实践Demo程序准备测试类Util原创 2021-03-12 09:40:59 · 514 阅读 · 0 评论 -
Spring Boot - 自定义Starter封装
Spring Boot - 自定义Starter封装在Springboot封装一个自定义的Starter的一个Demo,从创建一个模块->封装starter->使用。 @pdai思路1 - 创建一个Demo Project,模拟一个需要被封装的DemoModule模块,其中核心方法为exeModuleMethod2 - 通过starter封装可以直接初始化DemoModule的...原创 2019-11-30 17:07:32 · 1489 阅读 · 0 评论 -
现在Java 桌面应用程序能做到什么程度(Spring Boot+JavaFX2开发)
Spring Boot - JavaFX 2.0应用很多人对Java开发native程序第一反应还停留在暗灰色单一风格的Java GUI界面,开发方式还停留在AWT或者Swing。本文主要基于SpringBoot和JavaFX开发一个Demo给你展示Java Native应用可以做到什么样的程度。当然JavaFX 2.0没有流行起来也是有原因的,而且目前native的选择很多,前端是个框架都会...原创 2019-10-31 08:40:46 · 7177 阅读 · 3 评论 -
Spring Boot - 访问外部接口的三种常用方式
Spring Boot - 访问外部接口在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如调用外部的地图API或者天气API。Spring Boot - 访问外部接口方案一: 采用原生的Http请求方案二: 采用Feign进行消费方案三: 采用RestTemplate方法Get请求之——getForEntity(Stri...原创 2019-10-30 13:00:25 · 5623 阅读 · 1 评论 -
Spring Boot - Logback配置日志要考虑哪些因素
Spring Boot - Logback配置日志出于性能等原因,Logback 目前是springboot应用日志的标配; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。@pdaiSpring Boot - Logback配置日志配置时考虑点实现范例综合范例在配置前可以参考如下文章參考文档代码示例最全的Java后端知识体系 https://ww...原创 2019-10-30 12:45:56 · 122 阅读 · 0 评论