Skip to content

Commit b04ff06

Browse files
committed
[docs update]新增Spring Bean 是线程安全的吗?
1 parent bd1fa73 commit b04ff06

File tree

5 files changed

+16
-30
lines changed

5 files changed

+16
-30
lines changed

docs/about-the-author/zhishixingqiu-two-years.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ star: 2
133133

134134
三年前,星球的定价是 **50/年** (星球规定的最低定价),我还附送了 33 元优惠券。扣除了星球手续费,发了各种福利之后,就是纯粹在做公益。感兴趣的小伙伴可以看看我在 2020-01-03 发的头条:[做了一个很久没敢做的事情](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486049&idx=1&sn=e0161b409e8f164251bdaa0c83a476bc&chksm=cea245aaf9d5ccbcafdb95a546d959508814085620aabdbb4385c4b8cea6e50bf157c3697041&token=1614894361&lang=zh_CN#rd),考古一下。
135135

136-
三年后,已经有 **2.3w** 人加入我的星球。随着时间推移,星球沉淀干货资源越来越多,我花在星球上的时间也越来越多。因此,我会逐步调整星球的定价。目前星球的定价是 **166/年**,后续我会将星球的价格调整为 **199/年** ,想要加入的小伙伴一定要尽早。
136+
随着时间推移,星球沉淀的干货资源越来越多,我花在星球上的时间也越来越多。于是,我将星球的定价慢慢调整为了 **166/年**!后续会将星球的价格调整为 **196/年**,想要加入的小伙伴一定要尽早。
137137

138138
这里再送一个 **30** 元的星球专属优惠券吧,数量有限(价格即将上调。老用户续费半价 ,微信扫码即可续费)!
139139

docs/snippets/planet.snippet.md

-10
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22

33
![《Java 面试指北》内容概览](https://oss.javaguide.cn/xingqiu/image-20220304102536445.png)
44

5-
## 星球介绍
6-
7-
最近几年,市面上有越来越多的“技术大佬”开始办培训班/训练营,动辄成千上万的学费,却并没有什么干货,单纯的就是割韭菜。
8-
95
为了帮助更多同学准备 Java 面试以及学习 Java ,我创建了一个纯粹的[ Java 面试知识星球](../about-the-author/zhishixingqiu-two-years.md)。虽然收费只有培训班/训练营的百分之一,但是知识星球里的内容质量更高,提供的服务也更全面,非常适合准备 Java 面试和学习 Java 的同学。
106

117
**欢迎准备 Java 面试以及学习 Java 的同学加入我的 [知识星球](../about-the-author/zhishixingqiu-two-years.md),干货非常多,学习氛围也很不错!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。**
@@ -18,12 +14,6 @@
1814

1915
如果你感兴趣的话,不妨花 3 分钟左右看看星球的详细介绍:[JavaGuide 知识星球详细介绍](../about-the-author/zhishixingqiu-two-years.md)
2016

21-
## 如何加入?
22-
23-
三年前,星球的定价是 **50/年** (星球规定的最低定价),我还附送了 33 元优惠券。扣除了星球手续费,发了各种福利之后,就是纯粹在做公益。感兴趣的小伙伴可以看看我在 2020-01-03 发的头条:[做了一个很久没敢做的事情](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486049&idx=1&sn=e0161b409e8f164251bdaa0c83a476bc&chksm=cea245aaf9d5ccbcafdb95a546d959508814085620aabdbb4385c4b8cea6e50bf157c3697041&token=1614894361&lang=zh_CN#rd),考古一下。
24-
25-
三年后,已经有 **2.3w** 人加入我的星球。随着时间推移,星球沉淀干货资源越来越多,我花在星球上的时间也越来越多。因此,我会逐步调整星球的定价。目前星球的定价是 **166/年**,后续我会将星球的价格调整为 **199/年** ,想要加入的小伙伴一定要尽早。
26-
2717
这里再送一个 **30** 元的星球专属优惠券吧,数量有限(价格即将上调。老用户续费半价 ,微信扫码即可续费)!
2818

2919
![知识星球30元优惠卷](https://oss.javaguide.cn/xingqiu/xingqiuyouhuijuan-30.jpg)

docs/snippets/planet2.snippet.md

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
## 星球介绍
1+
## 星球其他资源
22

3-
最近几年,市面上有越来越多的“技术大佬”开始办培训班/训练营,动辄成千上万的学费,却并没有什么干货,单纯的就是割韭菜
3+
[知识星球](../about-the-author/zhishixingqiu-two-years.md)除了提供了 **《Java 面试指北》****《Java 必读源码系列》**(目前已经整理了 Dubbo 2.6.x 、Netty 4.x、SpringBoot2.1 的源码)、 **《手写 RPC 框架》****《Kafka 常见面试题/知识点总结》** 等多个专属小册,还会有读书活动、学习打卡、简历修改、免费提问、海量 Java 优质面试资源以及各种不定时的福利
44

5-
为了帮助更多同学准备 Java 面试以及学习 Java ,我创建了一个纯粹的[ Java 面试知识星球](../about-the-author/zhishixingqiu-two-years.md)。虽然收费只有培训班/训练营的百分之一,但是知识星球里的内容质量更高,提供的服务也更全面,非常适合准备 Java 面试和学习 Java 的同学。
6-
7-
**欢迎准备 Java 面试以及学习 Java 的同学加入我的 [知识星球](../about-the-author/zhishixingqiu-two-years.md),干货非常多,学习氛围也很不错!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。**
5+
![知识星球专栏概览](https://oss.javaguide.cn/xingqiu/image-20220211231206733.png)
86

97
下面是星球提供的部分服务(点击下方图片即可获取知识星球的详细介绍):
108

@@ -14,11 +12,11 @@
1412

1513
如果你感兴趣的话,不妨花 3 分钟左右看看星球的详细介绍:[JavaGuide 知识星球详细介绍](../about-the-author/zhishixingqiu-two-years.md)
1614

17-
## 如何加入?
15+
## 星球限时优惠
1816

19-
三年前,星球的定价是 **50/年** (星球规定的最低定价),我还附送了 33 元优惠券。扣除了星球手续费,发了各种福利之后,就是纯粹在做公益。感兴趣的小伙伴可以看看我在 2020-01-03 发的头条:[做了一个很久没敢做的事情](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486049&idx=1&sn=e0161b409e8f164251bdaa0c83a476bc&chksm=cea245aaf9d5ccbcafdb95a546d959508814085620aabdbb4385c4b8cea6e50bf157c3697041&token=1614894361&lang=zh_CN#rd),考古一下。
17+
三年前,星球的定价是 **50/年** (星球规定的最低定价),我还附送了 33 元优惠券。扣除了星球手续费,发了各种福利之后,就是纯粹在做公益。感兴趣的小伙伴可以看看我在 **2020-01-03** 发的头条:[做了一个很久没敢做的事情](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486049&idx=1&sn=e0161b409e8f164251bdaa0c83a476bc&chksm=cea245aaf9d5ccbcafdb95a546d959508814085620aabdbb4385c4b8cea6e50bf157c3697041&token=1614894361&lang=zh_CN#rd),考古一下。
2018

21-
三年后,已经有 **2.3w** 人加入我的星球。随着时间推移,星球沉淀干货资源越来越多,我花在星球上的时间也越来越多。因此,我会逐步调整星球的定价。目前星球的定价是 **166/年**,后续我会将星球的价格调整为 **199/年** ,想要加入的小伙伴一定要尽早。
19+
随着时间推移,星球沉淀的干货资源越来越多,我花在星球上的时间也越来越多。于是,我将星球的定价慢慢调整为了 **166/年**!后续会将星球的价格调整为 **196/年**,想要加入的小伙伴一定要尽早。
2220

2321
这里再送一个 **30** 元的星球专属优惠券吧,数量有限(价格即将上调。老用户续费半价 ,微信扫码即可续费)!
2422

docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md

+9-5
Original file line numberDiff line numberDiff line change
@@ -307,17 +307,21 @@ public Person personPrototype() {
307307
}
308308
```
309309

310-
### 单例 Bean 的线程安全问题了解吗
310+
### Bean 是线程安全的吗
311311

312-
大部分时候我们并没有在项目中使用多线程,所以很少有人会关注这个问题。单例 Bean 存在线程问题,主要是因为当多个线程操作同一个对象的时候是存在资源竞争的
312+
Spring 框架中的 Bean 是否线程安全,取决于其作用域和状态
313313

314-
常见的有两种解决办法:
314+
我们这里以最常用的两种作用域 prototype 和 singleton 为例介绍。几乎所有场景的 Bean 作用域都是使用默认的 singleton ,重点关注 singleton 作用域即可。
315+
316+
prototype 作用域下,每次获取都会创建一个新的 bean 实例,不存在资源竞争问题,所以不存在线程安全问题。singleton 作用域下,IoC 容器中只有唯一的 bean 实例,可能会存在资源竞争问题(取决于 Bean 是否有状态)。如果这个 bean 是有状态的话,那就存在线程安全问题(有状态 Bean 是指包含可变的成员变量的对象)。
317+
318+
不过,大部分 Bean 实际都是无状态(没有定义可变的成员变量)的(比如 Dao、Service),这种情况下, Bean 是线程安全的。
319+
320+
对于有状态单例 Bean 的线程安全问题,常见的有两种解决办法:
315321

316322
1. 在 Bean 中尽量避免定义可变的成员变量。
317323
2. 在类中定义一个 `ThreadLocal` 成员变量,将需要的可变成员变量保存在 `ThreadLocal` 中(推荐的一种方式)。
318324

319-
不过,大部分 Bean 实际都是无状态(没有实例变量)的(比如 Dao、Service),这种情况下, Bean 是线程安全的。
320-
321325
### Bean 的生命周期了解么?
322326

323327
- Bean 容器找到配置文件中 Spring Bean 的定义。

docs/zhuanlan/readme.md

-6
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,4 @@ category: 知识星球
1515

1616
我有自己的原则,不割韭菜,用心做内容,真心希望帮助到你!
1717

18-
## 更多专栏
19-
20-
除了上面介绍的之外,我的[知识星球](../about-the-author/zhishixingqiu-two-years.md)还有 《Kafka 常见面试题/知识点总结》、《程序员副业赚钱之路》等多个专栏。进入星球之后,统统都可以免费阅读。
21-
22-
![知识星球专栏概览](https://oss.javaguide.cn/xingqiu/image-20220211231206733.png)
23-
2418
<!-- @include: @planet2.snippet.md -->

0 commit comments

Comments
 (0)