1、idea安装
preferences -> plugins,搜索 alibaba 即可
2、如何使用
第一步:选择自己想要扫描的文件夹(可以是project、module、package)
第二步:鼠标右键,点击编码规范扫描。例如下图将扫描tutor-某工程service下的所有类
3、查看违反规范情况和解决方法
扫描之后,会有三种级别,Blocker -> critical -> major 级别依次降低
双击可展示违反规范的细节,原因和地点
例如:对于线程池的创建,阿里规范规定不能使用 Executors去创建,而是通过ThreadPoolExecutor的方式。Executor的方式创建的线程池,允许的队列长度为Integer.MAX_VALUE,可能会堆积大量的请求,从而造成OOM的风险。
推荐使用自定义线程池,根据业务需求,请求量,定制核心线程、最大线程、拒绝策略和缓存队列大小
规范插件也给出了正确的使用方式,如下所示
Positive example 1:
//org.apache.commons.lang3.concurrent.BasicThreadFactory
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1,
new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build());
Positive example 2:
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
//Common Thread Pool
ExecutorService pool = new ThreadPoolExecutor(5, 200,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue
pool.execute(()-> System.out.println(Thread.currentThread().getName()));
pool.shutdown();//gracefully shutdown
参考链接:
https://developer.aliyun.com/article/224817
评论区