背景介绍
毋庸置疑,Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分 Java 后端程序员在日常工作中也会接触到Spring ,因此,如何用好 Spring ,也就成为 Java程序员的必修课之一。
同时,Spring Boot 和 Spring Cloud的出现,可以帮助工程师更好地基于 Spring 及各种基础设施来快速搭建系统,可以说,它们的诞生又一次解放了大家的生产力。
因此,Spring Boot 和 Spring Cloud已成为 Spring 生态中不可或缺的一环。想成为一名合格的Java 后端工程师,Spr
什么是CAS
CAS即Compare And Swap的缩写,翻译成中文就是比较并交换,其作用是让CPU比较内存中某个值是否和预期的值相同,如果相同则将这个值更新为新值,不相同则不做更新,也就是CAS是原子性的操作(读和写两者同时具有原子性),其实现方式是通过借助C/C++调用CPU指令完成的,所以效率很高。
CAS的原理很简单,这里使用一段Java代码来描述
IoC、DI基础概念
关于IoC和DI大家都不陌生,我们直接上martin fowler的原文,里面已经有DI的例子和spring的使用示例
《Inversion of Control Containers and the Dependency Injection pattern》
https://www.martinfowler.com/articles/injection.html
我们这里只关注一些重点概念做为思考,摘一部分原文:
“As a result I think we need a more specific name for this pattern. Inversi
循环依赖这个问题,按理说我们在日常的程序设计中应该避免,其实这个本来也是能够避免的。不过由于种种原因,我们可能还是会遇到一些循环依赖的问题,特别是在面试的过程中,面试考察循环依赖,主要是想考察候选人对 Spring 源码的熟悉程度,因为要把循环依赖这个问题解释清楚,涉及到不少 Spring 源码。
今天松哥抽空和大家简单聊聊这个话题,问题比较庞大,我可能花几篇文章来和大家分享下,今天先来聊聊实例的注入方式。