springboot开启异步任务只需要两个注解:@EnableAsync和@Async。 springboot启动类上添加@EnableAsync注解来使springboot...
springboot开启异步任务只需要两个注解:@EnableAsync和@Async。 springboot启动类上添加@EnableAsync注解来使springboot...
静态内部类实现单例 静态内部类和饿汉方式有异曲同工之妙,它们都采用了类装载的机制来保证,当初始化实例时只有一个线程执行,从而保证了多线程下的安全操作。JVM 会在类初始化阶段...
上传文件时413错误,如图: 已知项目使用了nginx做反向代理,nginx会限制请求体的大小,所以如果想要上传较大的文件,需要对nginx进行配置。打开nginx主配置文件...
springboot接口如下: TestUser model如下: vue测试页面如下: 测试结果如下:
pom文件 yml配置 model实体 repository service controller 包结构如下:
新建配置类即可
步骤一:安装node.js 查看node.js是否安装成功: 步骤二:安装cnpm 由于npm是国外的,使用起来比较慢,这里安装cnpm淘宝镜像 步骤三:安装全局vue-cl...
新建spring boot项目,并添加swagger相关依赖,完整pom如下: 新建swagger配置类 controller测试类 项目包结构如图: 启动项目,访问 或者 ...
springboot中有三种方式可以获取yml配置文件中的配置内容。 yml如下 注意,使用ConfigurationProperties后可能会有如下报错: 虽不影响运行,...
ThreadPoolExecutor 中涉及关闭线程池的方法有五种: void shutdown;boolean isShutdown;boolean isTerminate...
所谓的自动创建线程池就是直接调用 Executors 的各种方法来生成前面学过的常见的线程池,例如 Executors.newCachedThreadPool()。但这样做是...
线程池的内部结构主要由四部分组成 第一部分是线程池管理器,它主要负责管理线程池的创建、销毁、添加任务等管理操作,它是整个线程池的管家。 第二部分是工作线程,也就是图中的线程 ...
线程池ExecutorService的参数 线程创建的时机 接下来,我们来具体看下这两个参数所代表的含义,以及线程池中创建线程的时机。如上图所示,当提交任务后,线程池首先会检...
在 Java 诞生之初是没有线程池的概念的,而是先有线程。没有线程池的时候,每发布一个任务就需要创建一个新的线程,这样在任务少时是没有问题的。随着线程数的不断增加,人们发现需...
生产者消费者模式 我们先来看看什么是生产者消费者模式,生产者消费者模式是程序设计中非常常见的一种设计模式,被广泛运用在解耦、消息队列等场景。在现实世界中,我们把生产商品的一方...
ReentrantLock是独占可重入锁,所谓重入锁,指的是以线程为单位,当一个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,而其他的线程是不可以的。 synchro...
新建国际化所需properties文件 在resource文件夹下新建Resource Bundle。 properties文件相关目录结构如图: messages.prop...
Redis 如何处理过期数据的 对于已经过期的数据,Redis 将使用两种策略来删除这些过期键,它们分别是惰性删除和定期删除。 惰性删除 惰性删除是指 Redis 服务器不主...