Spring Boot的上传文件,相信你一定会了。如果还不会的小伙伴,可以先看看之前的分享: Spring Boot 2.x基础教程:实现文件上传 Spring Boot 2.x基础教程:多文件的上传 文件上传实现之后,通常最常见的另外两个操作就是下载和预览,下载只需要知道地址,就简单搞定了,那么预览怎么做?你知道吗? 今天小编就来推荐一个用Spring Boot搭建的文档在线预览解决方...

通过之前三篇关于Spring Boot异步任务实现的博文,我们分别学会了用@Async创建异步任务、为异步任务配置线程池、使用多个线程池隔离不同的异步任务。今天这篇,我们继续对上面的知识进行完善和优化! 如果你已经看过上面几篇内容并已经掌握之后,一起来思考下面这个问题: 假设,线程池配置为核心线程数2、最大线程数2、缓冲队列长度2。此时,有5个异步任务同时开始,会发生什么? 场景重现我们...

各位程序猿小伙伴们,中秋快乐~在节日欢快的气氛中大家是不是还在奋笔疾书、沉浸在学习的海洋中呢? 小编这两天休息在家一直在想一个问题,那就是我们在开发SpringBoot项目的时候,该怎么做好权限认证呢?之前有和小伙伴讨论的时候说起过一些常见的相关框架,例如Shiro或者Spring Security等,但这些框架似乎在运用上存在着各种美中不足的地方,尤其是用起来太过复杂,劝退了不少新手程序猿...

自从Redis面世以来,作为一个开源的高性能的key-value型数据库,很大程度的对关系型数据库起到很好的补充作用。 Redis实现简单,功能齐全,已经成为了业界最常用的组件之一。为了更方便的使用,衍生出一系列的可视化工具,像是redis desktop manager、medis、fastoredis、redis clent等等等等,各花各草入各眼,每个人都有自己喜欢的风格,但是往往这些...

随着微信、支付宝等航母级应用在众人身边的普及,越来越多的应用、网站在登陆的时候除了提供注册用户外,还直接提供第三方登录的方式,也就是直接关联微信、支付宝这类应用,用已有的账号和密码来快速完成当前应用或网站的登录注册。 第三方登录的好处对于应用来说,在于降低用户注册的成本,毕竟有时候只要点一下就可以登陆和需要填写各种信息注册的两种选择下,往往就是使用和放弃的区别。 对于用户来说,通过第三方登录...

Java 最重要的一次更新:JAVA 17 正式发布,这是一个LTS(长期支持)版本,带来了不少有用的新特性。Java 17 属于长期支持版本 (LTS),将会获得 8 年的技术支持,直至 2029 年 9 月。 Java 17 总共包含 14 个 JEP,具体如下: Restore Always-Strict Floating-Point Semantics 恢复始终执行严格模式 (Al...

通过上一篇:配置@Async异步任务的线程池的介绍,你应该已经了解到异步任务的执行背后有一个线程池来管理执行任务。为了控制异步任务的并发不影响到应用的正常运作,我们必须要对线程池做好相应的配置,防止资源的过渡使用。除了默认线程池的配置之外,还有一类场景,也是很常见的,那就是多任务情况下的线程池隔离。 什么是线程池的隔离,为什么要隔离可能有的小伙伴还不太了解什么是线程池的隔离,为什么要隔离?。...

上一篇我们介绍了如何使用@Async注解来创建异步任务,我可以用这种方法来实现一些并发操作,以加速任务的执行效率。但是,如果只是如前文那样直接简单的创建来使用,可能还是会碰到一些问题。存在有什么问题呢?先来思考下,下面的这个接口,通过异步任务加速执行的实现,是否存在问题或风险呢? @RestControllerpublic class HelloController { @A...

什么是“异步调用”?“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。 同步调用下面通过一个简单示例来直观的理解什么是同步调用: 定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内) @Slf4j@Compon...