博客
分类
标签
归档
关于
博客
分类
标签
归档
关于
Tau的博客
文章
分类
标签
归档
关于
Springboot @Async探险
从业务说起,用到了@Async在主线程中接收数据,进行数据拼接,然后存库,最后返回http 200, 由于客户端有失败重试机制,且失败次数多了之后会不再请求,所以为了避免由于存库导致的阻塞,项目中使用@async进行异步处理。 出现了意料之外的问题项目上线后发现,一段时间之后客户端停止请求服务端了(这里其实是客户端的自动推送功能被关了)查看日志发现是使用了@async的子线程抛了异常,导致没...
2020-12-02
Java
Java
Read More
容器学习笔记
docker本质是个进程,通过cgroup, namespace和rootfs实现的一个特殊的进程。 kubernetes凌驾于docker之上,docker只是它的运行时的一种实现方式,除了运行时,k8s还有许多其他的部分。
2020-09-15
中间件
中间件
Read More
Java中的类卸载
为什么会有类卸载一说在一些场景中,比如java agent技术,我们attach到目标jvm的agent中的类被加载并且使用完后,它的使命就完成了,留着占用jvm内存,这时候就需要卸载掉。 如何卸载在之前的文章中有分享过类加载,有类加载就有类卸载,当这个类的Class对象不再被引用时,那它的生命周期就结束了。我们需要理解这么几个概念: 类加载器 Class对象 类的实例。 我们知道,类是...
2020-09-06
Java
Java
Read More
Java中的Instrumentation
前言在之前的文章里我们介绍了ASM字节码框架,使用它可以动态的修改class文件。但是仔细一想,你会发现仅仅ASM并不能真正用于生产,为什么?假如你已经有一个在运行的系统了,现在想要做一些字节码修改的动作,难道我们要去修改源代码吗?麻烦不说,而且污染了本来的系统。 所以我们就考虑,有没有什么方法,可以实现动态的无污染的织入,这就要引入今天的主角,Instrument了。 正文Instrume...
2020-09-04
Java
Java
Read More
ASM字节码
写这篇文章是因为在开水团实习的时候的一个项目用到了这个技术,在这里重新做下总结和梳理。 什么是ASMASM是一个字节码操作框架,使用它可以动态地修改class文件,或者让类被加载到虚拟机之前修改一些行为。 ASM有什么用一言以蔽之,AOP. 说到AOP,可能会想到Spring的JDK动态代理Proxy或者CGLIB. 这里JDK动态代理底层使用反射实现,众所周知反射的性能比较差。而C...
2020-08-30
Java
Java
Read More
关于跨域
什么是跨域往粗了说,就是一个站点的脚本或者文档企图访问另一个站点的资源,这是一种广义的定义。但通常我们说的是狭义的跨域,而狭义的跨域是和同源策略绑定在一起的。 什么是同源策略同源策略是浏览器的一种安全策略,是为了防止一个源下的资源去访问另一个源下的资源。所谓同源,是指协议+域名+端口相同。 为什么会有跨域跨域是实实在在存在的,往小了说,前端加载的静态资源可能来自其他域,比如加载css样式或者...
2020-08-06
前端
前端
Read More
从集合类开始
此文为我在备战秋招过程中对Java基础知识的启发式总结。 Java集合类,有Set, List, Queue. List底下有Vector, ArrayList, LinkedList. Vecotr底下还有个Stack. 讲一讲区别? 要说区别的话,Vector和ArrayList底层都是动态数组,不同的是Vector是线程安全的,因为它的方法有被**synchronized**关...
2020-07-26
Java
Java
Read More
Spring源码学习之AOP
经过供应链大佬的预面试,觉得自己在Spring这一块掌握地还是有些浅,痛定思痛,再次阅读源码。 在上一篇文章中我们已经分析了Spring IOC的一个大概过程,那么AOP又是在什么时候发生的呢?(这篇文章不讲动态代理,不讲切面切点通知,只讲代码流程。) 缘起Spring AOP很关键的一步就是创建AOP 代理,那么这一动作是何时发生的呢? 众所周知(不知道也没关系),创建代理对象有一种专...
2020-03-21
Spring
Spring
Read More
Spring思考与总结
更新于2020-10-01 从IoC的角度来说,spring是个容器,这个容器就是BeanFactory, 当然你说它是ApplicationContext也没有问题。容器是用来装东西的,装的东西就是我们定义的bean, 不过spring对它进行了封装,叫做BeanDefinition. 所以spring初始化的过程中,首先会做这么几件事情: 创建容器 创建beandefinition...
2020-03-19
框架
框架
Read More
Spring源码学习
今天面试被问到了Spring, 被面试官吊捶,痛定思痛,决定重新开始学习源码! 首先Spring容器的顶层容器接口是什么?BeanFactory和ApplicationContext, 其中ApplicationContext加了一些上下文的支持,更为高级一点。 以ClassPathXmlApplicationContext为例,容器初始化的入口方法在哪里呢?refresh()方法。 r...
2020-03-18
Read More
Previous
3 / 10
Next