SpringBoot定时任务 - Spring自带的定时任务是如何实现的?有何注意点?

2022-08-05
阅读 19 分钟
1.5k
通过前文我们基本梳理了定时任务体系:Timer和ScheduledExecutorService是JDK内置的定时任务方案,以及Netty内部基于时间轮实现的HashedWheelTimer,再到Quartz以及分布式任务(ElasticJob,xxl-job等等)。对于Springboot简单应用,还可以采用Spring自带task方式,本文主要介绍Spring自带的Task的案例和其实现方式。@pdai

SpringBoot定时任务 - 经典定时任务结构设计:时间轮(Timing Wheel)案例和实现原理

2022-08-04
阅读 9 分钟
2.2k
Timer和ScheduledExecutorService是JDK内置的定时任务方案,而业内还有一个经典的定时任务的设计叫时间轮(Timing Wheel), Netty内部基于时间轮实现了一个HashedWheelTimer来优化百万量级I/O超时的检测,它是一个高性能,低消耗的数据结构,它适合用非准实时,延迟的短平快任务,例如心跳检测。本文主要介绍时间轮(Timing...

SpringBoot定时任务 - 开箱即用分布式任务框架xxl-job

2022-08-03
阅读 17 分钟
1.5k
除了前文介绍的ElasticJob,xxl-job在很多中小公司有着应用(虽然其代码和设计等质量并不太高,License不够开放,有着个人主义色彩,但是其具体开箱使用的便捷性和功能相对完善性,这是中小团队采用的主要原因);XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。本文介绍XXL-JO...

SpringBoot定时任务 - 什么是ElasticJob?如何集成ElasticJob实现分布式任务调度?

2022-08-02
阅读 73 分钟
1.7k
前文展示quartz实现基于数据库的分布式任务管理和job生命周期的控制,那在分布式场景下如何解决弹性调度、资源管控、以及作业治理等呢?针对这些功能前当当团队开发了ElasticJob,2020 年 5 月 28 日ElasticJob成为 Apache ShardingSphere 的子项目;本文介绍ElasticJob以及SpringBoot的集成。@pdai

SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

2022-08-01
阅读 43 分钟
2.7k
最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式。本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数据库的分布式任务管理和控制job生命周期。@pdai

SpringBoot集成文件 - 如何集成itextpdf导出PDF?itext的变迁?

2022-07-31
阅读 13 分钟
3.4k
除了处理word, excel等文件外,最为常见的就是PDF的导出了。在java技术栈中,PDF创建和操作最为常用的itext了,但是使用itext一定要了解其版本历史和License问题,在早前版本使用的是MPL和LGPL双许可协议,在5.x以上版本中使用的是AGPLv3(这个协议意味着,只有个人用途和开源的项目才能使用itext这个库,否则是需要收费...

SpringBoot集成文件 - 如何基于POI-tl和word模板导出庞大的Word文件?

2022-07-31
阅读 9 分钟
2.7k
前文我们介绍了通过Apache POI通过来导出word的例子;那如果是word模板方式,有没有开源库通过模板方式导出word呢?poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让人喜悦的特性。本文主要介绍通过SpringBoot集成poi-tl实现模板方式的Word导出...

SpringBoot集成文件 - 如何使用POI导出Word文档?

2022-07-29
阅读 7 分钟
2.6k
前文我们介绍了通过Apache POI导出excel,而Apache POI包含是操作Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。所以也是可以通过POI来导出word的。本文主要介绍通过SpringBoot集成POI工具实现Word的导出功能。@pdai

SpringBoot集成文件 - 集成POI之Excel导入导出

2022-07-22
阅读 7 分钟
1.9k
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。本文主要介绍通过SpringBoot集成POI工具实现Excel的导入和导出功能。@pdai

SpringBoot数据库管理 - 用flyway对数据库管理和迁移

2022-07-20
阅读 10 分钟
2k
上文介绍了Liquibase,以及和SpringBoot的集成。除了Liquibase之外,还有一个组件Flyway也是经常被使用到的类似的数据库版本管理中间件。本文主要介绍Flyway, 以及SpringBoot集成Flyway。@pdai

SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?

2022-07-19
阅读 9 分钟
2k
Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。本文主要介绍SpringBoot与Liquib...

SpringBoot接口 - API接口有哪些不安全的因素?如何对接口进行签名?

2022-07-18
阅读 9 分钟
3.6k
在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API接口有不安全的因素以及常见的保证接口安全的方式,重点实践如何对接口进行签名。@pdai

SpringBoot接口 - 如何生成接口文档之非侵入方式(通过注释生成)Smart-Doc?

2022-07-15
阅读 14 分钟
2.3k
通过Swagger系列可以快速生成API文档,但是这种API文档生成是需要在接口上添加注解等,这表明这是一种侵入式方式; 那么有没有非侵入式方式呢, 比如通过注释生成文档? 本文主要介绍非侵入式的方式及集成Smart-doc案例。我们构建知识体系时使用Smart-doc这类工具并不是目标,而是要了解非侵入方式能做到什么程度和技术思...

SpringBoot接口 - 如何生成接口文档之Swagger技术栈?

2022-07-14
阅读 12 分钟
1.7k
SpringBoot开发Restful接口,有什么API规范吗?如何快速生成API文档呢?Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。本文主要介绍OpenAPI规范,以及Swagger技术栈基于OpenAPI规范的集成方案...

SpringBoot接口 - 如何优雅的写Controller并统一异常处理?

2022-07-13
阅读 13 分钟
1.3k
SpringBoot接口如何对异常进行统一封装,并统一返回呢?以上文的参数校验为例,如何优雅的将参数校验的错误信息统一处理并封装返回呢?@pdai

SpringBoot接口 - 如何优雅的对参数进行校验?

2022-07-12
阅读 11 分钟
1.6k
在以SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的,同时还需要给出校验的返回信息放到上文我们统一封装的结构中。那么如何优雅的进行参数的统一校验呢? @pdai

SpringBoot接口 - 如何优雅的对接口返回内容统一封装?

2022-07-11
阅读 5 分钟
1.3k
在以SpringBoot开发Restful接口时,统一返回方便前端进行开发和封装,以及出现时给出响应编码和信息。@pdaiSpringBoot接口 - 如何优雅的对接口返回内容统一封装?RESTful API接口?为什么要统一封装接口实现案例状态码封装返回内容封装接口返回时调用示例源码更多内容RESTful API接口?什么是 REST?Representational Stat...

SpringBoot开发 - 什么是热部署和热加载?devtool的原理是什么?

2022-07-10
阅读 8 分钟
1.1k
在SpringBoot开发调试中,如果我每行代码的修改都需要重启启动再调试,可能比较费时间;SpringBoot团队针对此问题提供了spring-boot-devtools(简称devtools)插件,它试图提升开发调试的效率。@pdai

[推荐]深入浅出学习Spring框架系列

2022-07-07
阅读 4 分钟
988
本系列主要介绍Spring框架整体架构,Spring的核心IOC,AOP的案例和具体实现机制;以及SpringMVC框架的案例和实现机制。@pdai

Spring框架系列(14) - SpringMVC实现原理之DispatcherServlet处理请求的过程

2022-07-06
阅读 18 分钟
699
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析。本文是第二篇:DispatcherServlet处理请求的过程的源码解析。@pdai

Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程

2022-07-05
阅读 25 分钟
834
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析。本文是第一篇:DispatcherServlet的初始化过程的源码解析。@pdai

Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现

2022-07-04
阅读 20 分钟
707
上文我们学习了SpringAOP Cglib动态代理的实现,本文主要是SpringAOP JDK动态代理的案例和实现部分。@pdaiSpring框架系列(12) - Spring AOP实现原理详解之JDK代理实现引入什么是JDK代理?JDK代理的案例不需要maven依赖定义实体被代理的类和接口JDK代理类使用代理简单测试JDK代理的流程ProxyGenerator生成代码从生成的Prox...

Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现

2022-07-02
阅读 13 分钟
752
我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理。@pdai

Spring框架系列(10) - Spring AOP实现原理详解之AOP代理的创建

2022-07-01
阅读 11 分钟
711
上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor)。本文在此基础上继续介绍,代理(cglib代理和JDK代理)的创建过程。@pdai

Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现

2022-06-30
阅读 28 分钟
939
前文,我们分析了Spring IOC的初始化过程和Bean的生命周期等,而Spring AOP也是基于IOC的Bean加载来实现的。本文主要介绍Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备的过程)。@...

Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)

2022-06-29
阅读 23 分钟
612
上文,我们看了IOC设计要点和设计结构;以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的;容器中存放的是Bean的定义即BeanDefinition放到beanDefinitionMap中,本质上是一个ConcurrentHashMap<String, Object>;并且BeanDefinition接口中包含了这个类的Clas...

Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程

2022-06-28
阅读 27 分钟
870
上文,我们看了IOC设计要点和设计结构;紧接着这篇,我们可以看下源码的实现了:Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的。@pdai

Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计

2022-06-27
阅读 10 分钟
514
在对IoC有了初步的认知后,我们开始对IOC的实现原理进行深入理解。本文将帮助你站在设计者的角度去看IOC最顶层的结构设计。@pdaiSpring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计站在设计者的角度考虑设计IOC容器Spring IoC的体系结构设计BeanFactory和BeanRegistry:IOC容器功能规范和Bean的注册BeanFacto...

Spring框架系列(5) - 深入浅出SpringMVC请求流程和案例

2022-06-24
阅读 16 分钟
940
前文我们介绍了Spring框架和Spring框架中最为重要的两个技术点(IOC和AOP),那我们如何更好的构建上层的应用呢(比如web 应用),这便是SpringMVC;Spring MVC是Spring在Spring Container Core和AOP等技术基础上,遵循上述Web MVC的规范推出的web开发框架,目的是为了简化Java栈的web开发。 本文主要介绍SpringMVC主要...

Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)

2022-06-23
阅读 19 分钟
725
在Spring基础 - Spring简单例子引入Spring的核心中向你展示了AOP的基础含义,同时以此发散了一些AOP相关知识点; 本节将在此基础上进一步解读AOP的含义以及AOP的使用方式。@pdai