From 731acb488b6c8b5c3b08c885360f7736fc7c99c1 Mon Sep 17 00:00:00 2001 From: xuchengsheng Date: Sat, 21 Oct 2023 17:46:23 +0800 Subject: [PATCH] =?UTF-8?q?javax.inject.Provider=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring-jsr/spring-jsr330-provider/README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/spring-jsr/spring-jsr330-provider/README.md b/spring-jsr/spring-jsr330-provider/README.md index dfcbf74..02378c4 100644 --- a/spring-jsr/spring-jsr330-provider/README.md +++ b/spring-jsr/spring-jsr330-provider/README.md @@ -123,9 +123,10 @@ public class MyService { 运行结果发现,`myServiceProvider1` 和 `myServiceProvider2` 两次获取到的 `MyService` 实例具有相同的对象引用(`@235ecd9f`)。这说明 `MyService` bean 是单例作用域的。 -| :warning: 注意! | -| :----------------------------------------------------------- | -| 在 Spring 中,默认的作用域是单例(singleton),这意味着在整个 Spring 容器中,一个特定的 bean 定义只有一个实例。因此,无论我们调用多少次 `myServiceProvider.get()`,它都会返回相同的 `MyService` 实例。如果我们想每次都获得一个新的 `MyService` 实例,我们需要将 `MyService` 定义为原型作用域(prototype)。 | +
+ 💡 提示: +

在 Spring 中,默认的作用域是单例(singleton),这意味着在整个 Spring 容器中,一个特定的 bean 定义只有一个实例。因此,无论我们调用多少次 `myServiceProvider.get()`,它都会返回相同的 `MyService` 实例。如果我们想每次都获得一个新的 `MyService` 实例,我们需要将 `MyService` 定义为原型作用域(prototype)。

+
```java myServiceProvider1 = com.xcs.spring.service.MyService@235ecd9f @@ -511,4 +512,7 @@ protected Object getValue() throws BeansException { - 对于JSR-330的`Provider`类型的依赖,Spring会创建一个特定的`Provider`实例来满足这个依赖,这是通过`Jsr330Factory`和其内部类`Jsr330Provider`实现的。 5. **获取`Provider`的值** - 在`Jsr330Provider`中的`get`方法被调用时,会进一步调用`getValue`方法。 - - `getValue`方法负责实际的依赖解析,返回所需的bean实例。 \ No newline at end of file + - `getValue`方法负责实际的依赖解析,返回所需的bean实例。 + + +