摘要: 前言 发现写着写着好像越来越偏离正轨了,果然还是知道得太少了;这篇算是MethodInterceptor的第二篇了吧,本来没想写这篇文章的,但是看了看源码,颠覆我之前已有的认知,感觉还是得把这篇文章写出来; 正文 上一篇MethodInterceptor的文章都是以配置注解的形式来将MethodIn 阅读全文
posted @ 2020-07-02 22:42 guoyuchuan 阅读(1041) 评论(0) 推荐(0) 编辑
摘要: 前言 本篇要说的是ThreadLocal,这个玩意平时在项目中很少用到,但是却有极大的用处;平时在面试中也会经常问到这个问题。 正文 本篇使用jdk1.8版本。 ThreadLocal介绍 先来看看源码中的介绍吧,文档太多,就不全贴出来了 /** * This class provides thre 阅读全文
posted @ 2020-06-13 13:33 guoyuchuan 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 前言 最近在看springboot的@EnableAsync的源码,发现还是需要提前看一些东西,比如这次的MethodInterceptor接口的作用;如今springboot都到2.0以后了,我谷歌出来好多文章都是用的配置文件,本篇就用纯代码的形式来说明MethodInterceptor的用法; 阅读全文
posted @ 2020-06-08 21:15 guoyuchuan 阅读(11049) 评论(0) 推荐(0) 编辑
摘要: 前言 本篇文章针对上篇文章 "springboot异步线程" ,有一位大佬在评论中提出第一点是错误的,当时看到了这个问题,最近刚好有空,针对第一点的问题去搜索了不少的文章; 问题 我在文章中第一点去验证:Scheduled为单线程执行,这是错误的;正确的是,scheduled单线程执行是因为使用默认 阅读全文
posted @ 2020-05-24 17:30 guoyuchuan 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 前言 今天跑新项目,发现新项目中的某个接口报 ,该接口调用了某个类的静态方法,而该静态方法的主要作用是获取远程配置信息;错误信息是: ;第一眼发现这个错误还以为是这个类没导入,但是在编译文件下找到了该文件是存在的; 解决 1. 通过参考中的几篇的文章中,发现是静态方法中的某个问题,获取远程配置,但是 阅读全文
posted @ 2020-05-21 22:12 guoyuchuan 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 前言 最近项目开发完成了,接下来就是迭代了,空闲时间比较充足了,开始来搞自己的博客了。 这里先说一下自己博客的情况:我使用jekyll搭建的博客,至于怎么安装jekyll这里就不具体描述了,因为自己安装过四五次了,但是每次安装遇到的问题都不一样,每次安装都要搜很多教程才能安装完,需要安装的还是自己去 阅读全文
posted @ 2019-12-22 13:41 guoyuchuan 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 前言 上一篇中讲了关于 的一些相关知识,本篇就是实战篇,看看异步线程使如何使用的 正文 本篇文章使用springboot 2.2.1.RELEASE 一.前奏,直接使用,无任何配置 1. 启动异步注解 在springboot启动类上添加注解@EnableAsync 2. 使用@Async注解 在需要 阅读全文
posted @ 2019-12-16 21:24 guoyuchuan 阅读(1313) 评论(0) 推荐(0) 编辑
摘要: 前言 在本篇文章中,我们主要讨论spring异步编程的一些相关知识,不涉及实战。springboot版本2.2.1 TaskExecutor spring2.0后提出 接口,作为任务执行者抽象。 源码: spring框架提供了一定的 实现类,这些实现类可以完成几乎所有使用场景的覆盖,所以,大多数情况 阅读全文
posted @ 2019-11-14 14:47 guoyuchuan 阅读(3448) 评论(0) 推荐(0) 编辑
摘要: 线程的几个属性 线程的属性包括线程的编号(ID),名称(Name),线程类别(Daemon),和优先级(Priority); 属性 | 属性类型及用途 | 只读属性 | 重要注意事项 | | | 编号(ID) | 类型:long。用于标识不同的线程,不同线程有不同编号 |是|某个编号的线程运行结束后 阅读全文
posted @ 2019-10-29 22:09 guoyuchuan 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 1. 线程状态 // Thread.State 源码 1.1 new 一个已经创建而未启动的线程处于改状态,此时还未调用start()方法; 注意 :一个线程实例只能被启动一次 1.2 RUNNABLE 该状态可以被看成一个复合状态。它包含两个子状态READY和RUNNING。前者表示处于该状态的线 阅读全文
posted @ 2019-10-08 10:53 guoyuchuan 阅读(311) 评论(0) 推荐(0) 编辑