赶紧收藏-针对SpringBoot的七个优化

本文是向大家介绍常用框架springboot的常用优化,能够提高模块的吞吐并发。


目录

  1. 异步执行

  1. 增加内嵌 Tomcat 的最大连接数

  1. 使用 @ComponentScan()

  1. 默认 Tomcat 容器改为 Undertow

  1. 使用 BufferedWriter 进行缓冲

  1. Deferred 方式实现异步调用

  1. 异步调用可以使用 AsyncHandlerInterceptor 进行拦截

异步执行

实现方式二种:

  • 使用异步注解 @aysnc、启动类:添加 @EnableAsync 注解

  • JDK 8 本身有一个非常好用的 Future 类——CompletableFuture

@AllArgsConstructor

public class AskThread implements Runnable{

private CompletableFuture<Integer> re = null;

public void run() {

int myRe = 0;

try {

myRe = re.get() * re.get();

} catch (Exception e) {

e.printStackTrace();

}

System.out.println(myRe);

}

public static void main(String[] args) throws InterruptedException {

final CompletableFuture<Integer> future = new CompletableFuture<>();

new Thread(new AskThread(future)).start();

//模拟长时间的计算过程

Thread.sleep(1000);

//告知完成结果

future.complete(60);

}

}

在该示例中,启动一个线程,此时 AskThread 对象还没有拿到它需要的数据,执行到 myRe = re.get() * re.get() 会阻塞。

我们用休眠 1 秒来模拟一个长时间的计算过程,并将计算结果告诉 future 执行结果,AskThread 线程将会继续执行。

public class Calc {

public static Integer calc(Integer par

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值