首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

控制器中的原型作用域bean返回相同的实例- Spring Boot

在Spring Boot中,控制器中的原型作用域bean返回相同的实例是因为Spring Boot默认使用了单例模式来管理bean。单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点。

在Spring Boot中,默认情况下,所有的bean都是单例的,即每个bean只会被创建一次,并且在整个应用程序的生命周期中都可以被共享和重用。这意味着,当在控制器中注入一个原型作用域的bean时,Spring Boot会创建一个实例,并在后续的请求中重复使用该实例。

原型作用域的bean与单例作用域的bean不同,它们在每次请求时都会创建一个新的实例。然而,在控制器中注入原型作用域的bean时,由于Spring Boot默认使用单例模式管理bean,因此每次请求都会返回相同的实例。

要解决这个问题,可以通过在原型作用域的bean上使用@Scope("prototype")注解来显式地指定其作用域为原型。这样,每次请求时都会创建一个新的实例。

例如,假设有一个原型作用域的bean类MyPrototypeBean

代码语言:txt
复制
@Component
@Scope("prototype")
public class MyPrototypeBean {
    // ...
}

然后,在控制器中注入该原型作用域的bean:

代码语言:txt
复制
@RestController
public class MyController {
    private final MyPrototypeBean myPrototypeBean;

    public MyController(MyPrototypeBean myPrototypeBean) {
        this.myPrototypeBean = myPrototypeBean;
    }

    // ...
}

这样,每次请求时,Spring Boot都会创建一个新的MyPrototypeBean实例,并注入到控制器中。

关于Spring Boot的更多信息和相关产品介绍,您可以访问腾讯云的官方文档和产品页面:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

springBean作用

bean定义看成一个配方很有意义,它与class很类似,只根据一张“处方”就可以创建多个实例。 你不仅可以控制注入到对象各种依赖和配置值,还可以控制该对象作用。...1、singleton:当一个bean作用为singleton, 那么Spring IoC容器只会存在一个共享bean实例,并且所有对bean请求,只要id与该bean定义相匹配,则只会返回bean...注意:Singleton作用Spring缺省作用。...Prototype作用bean会导致在每次对该bean请求(将其注入到另一个bean,或者以程序方式调用容器getBean()方法)时都会创建一个新bean实例。...当处理请求结束,request作用bean实例将被销毁。 4、session:在一个HTTP Session,一个bean定义对应一个实例

78720
  • spring bean作用

    Bean作用 参考:spring FrameWork官方文档 spring4.x官方有7作用,如果使用是applicationContext作为容器的话就只用5作用 下面的其中作用为...spring4.x七种作用 下面讲解平常使用applicationContext作为容器为5作用,分别为singleton(单例)、prototype(原型)、request、session...和global session,5种作用说明如下: singleton:单例模式,Spring IoC容器只会存在一个共享Bean实例,无论有多少个Bean引用它,始终指向同一对象。...Singleton作用Spring缺省作用,也可以显示Bean定义为singleton模式 ?...---- 下面几种作用提供两种配置 request:在一次Http请求,容器会返回Bean同一实例

    1.2K20

    SpringBean作用有哪些?

    Spring早期版本,仅有两个作用:singleton和prototype,前者表示Bean以单例方式存在;后者表示每次从容器调用Bean时,都会返回一个新实例,prototype通常翻译为原型...补充:设计模式创建型模式也有一个原型模式,原型模式也是一个常用模式,例如做一个室内设计软件,所有的素材都在工具箱,而每次从工具箱取出都是素材对象一个原型,可以通过对象克隆来实现原型模式。...Spring 2.x针对WebApplicationContext新增了3个作用,分别是:request(每次HTTP请求都会创建一个新Bean)、session(同一个HttpSession共享同一个...Bean,不同HttpSession使用不同Bean)和globalSession(同一个全局Session共享一个Bean)。...在传统开发,由于DAO持有Connection这个非线程安全对象因而没有使用单例模式;但在Spring环境下,所有DAO类对可以采用单例模式,因为Spring利用AOP和Java APIThreadLocal

    90320

    Spring-Bean作用

    我们来看下Spring4.0支持所有作用类型 类型 说明 singleton 在Spring容器仅存在一个Bean实例Bean以单例方式存在 prototype 每次从容器调用Bean时,都返回一个新实例...基于这一点,所以在实际应用,大部分Bean都能以单例形式运行。 这也是Springbean默认作用指定为singleton原因。...被其他需要提前实例Bean所引用,那么Spring会忽略延迟实例设置 ---- prototype作用 采用scope=”prototype”指定非单例作用bean ....---- 与Web应用环境相关Bean作用 Web容器配置Http请求监听器 如果用户使用SpringWebApplicationContext,则可以使用另外3Bean作用 request...pilot Bean作用为singleton, 也就是说容器始终只有一个实例, 而plane Bean作用为request, 所有每个调用PlaneBeanhttp请求都会创建一个新 plane

    30530

    spring开发_springBean作用_singleton_prototype

    ,每次通过容器getBean方法获取prototype定义Bean,都将产生一个新Bean实例"); 19 } 20 } /spring_0003_bean作用/src/com/b510...容器,使用singleton定义Bean将只有一个实例"); 18 } 19 } /spring_0003_bean作用/src/beans.xml 1 <?...(原型模式) 10 * 如果不指定Bean作用spring会默认指定Bean作用为singleton(单例模式),java在创建java实例 11 * 时候,需要进行内存申请;销毁实例时候...12 * prototype(原型模式)作用创建,销毁代价比较大;singleton(单例模式)作用Bean实例一次就可以 13 * 重复利用,因此,我们尽量用singleton(单例模式)...IoC容器,使用singleton定义Bean将只有一个实例 10 单例模式,在整个spring IoC容器,使用singleton定义Bean将只有一个实例 11 singletonBeanDao

    47320

    Springbean作用与生命周期

    (1)当一个 bean 作用为 Singleton,那么 Spring IoC 容器只会存在一个共享 bean 实例,并且所有对 bean 请求,只要 id 与该 bean 定义相匹配,则只会返回...注意,Singleton 作用Spring 缺省作用。...Prototype 作用 bean 会导致在每次对该 bean 请求(将其注入到另一个 bean ,或者以程序方式调用容器getBean()方法)时都会创建一个新 bean 实例。...当处理请求结束,request 作用 bean 实例将被销毁。 (4)当一个 bean 作用为 Session,表示在一个 HTTP Session ,一个 bean 定义对应一个实例。...(5)当一个 bean 作用为 Global Session,表示在一个全局 HTTP Session ,一个 bean 定义对应一个实例

    80220

    Spring Bean作用及生命周期

    Spring Bean对象作用: 在Spring容器管理Bean对象,可以在声明时通过scope属性或者相关注解指定其作用Spring容器Bean对象作用一共有5种:singleton...,当我们定义Bean时,如果没有给scope指定属性值,Spring会默认Bean作用为singleton。...singleton属于单例模式,被singleton标识对象具备全局唯一性,也就是在整个spring容器中有且仅有一个该Bean实例。 singleton 配置文件如下: <!...在SpringBean对象销毁是由Bean对象作用配置来决定: 1、singleton 作用对象可以在容器关闭时会由Spring调用对象销毁资源方法来销毁Bean对象; 2、prototype...作用对象可以由容器创建对象,初始化对象,但Spring容器不负责销毁。

    3.1K10

    Spring 框架学习(三) Bean 作用

    Bean 作用 Bean 作用分类 Spring Bean 定义了多种作用: 单例(Singleton):在整个应用,只创建 Bean 一个实例 原型(Prototype):每次注入或者通过...Spring 应用上下文获取时,都会创建一个新 Bean 实例 会话(Session):在 Web 应用,为每个会话创建一个 Bean 实例。...在 xml 文件设置 Bean 作用 在 xml 配置文件设置 Bean 作用需要在 bean 标签设置 scope 属性。...为了验证 Bean 实例被创建次数,我们需要在构造函数添加 println 函数,以确保该 Bean实例化一次。 配置文件 <?...Create a new Student Bean Create a new Student Bean false true 在 Java 配置文件设置 Bean 作用 在 java 配置文件设置作用你需要用到

    40720

    Spring速查手册(二)——Bean作用

    Bean四种作用 单例(Singleton):整个应用,只创建一个bean原型(Prototype):每次注入或请求要给bean时候都创建一个新bean。...会话(Session):每个session创建要给bean。 请求(Request):每个WEB请求创建一个bean。 PS:Spring默认bean是单例!...A a{ …… } // 在单例bean中注入不同作用bean @Component public B b{ @Autowired public void setA ( A a...单例bean在应用程序启动时候就初始化,并在初始化时需要注入session作用B,但session作用bean只有当有用户时候才创建,初始化时候并没有该对象。...此时需要在session作用bean对象上加上注解: // 创建一个sessionbean @Component @Scope(value=WebApplicationContext.SCOPE_SESSION

    62280

    Spring教程】bean作用及自动装配

    对于singleton作用Bean,每次请求该Bean都将获得相同实例。...容器负责跟踪Bean实例状态,负责维护Bean实例生命周期行为;如果一个Bean被设置成prototype作用,程序每次请求该idBeanSpring都会新建一个Bean实例,然后返回给程序。...在这种情况下,Spring容器仅仅使用new 关键字创建Bean实例,一旦创建成功,容器不在跟踪实例,也不会维护Bean实例状态。   ...如果不指定Bean作用Spring默认使用singleton作用。Java在创建Java实例时,需要进行内存申请;销毁实例时,需要完成垃圾回收,这些工作都会导致系统开销增加。...因此,prototype作用Bean创建、销毁代价比较大。而singleton作用Bean实例一旦创建成功,可以重复使用。

    45770

    Spring Bean 生命周期和作用

    Spring Bean 生命周期和作用Spring Bean 生命周期 Spring Bean 生命周期可以分成,创建,使用,销毁几个过程。...Spring Bean 创建过程如下: 实例Bean 对象 设置 Bean 属性 通过各种 Aware 接口声明了依赖关系,则会注入 Bean 对容器基础设施层面的依赖,包括 BeanNameAware...Spring Bean 作用 Spring Bean 有五个作用,最基础是如下两种: Singleton ,这是 Spring 默认作用,也就是为每个 IOC 容器创建唯一一个 Bean 实例...Web 容器还支持另外三种作用 Request, 每个 HTTP 请求创建单独 Bean 实例。 Session ,很显然 Bean 实例作用是 Session范围。...spring 注入四种方式: 构造器注入 setter 方法注入 基于注解注入 AOP,我们是通过切面编程机制,Spring 框架事务、日志、安全、等功能都依赖 AOP 技术。

    1.4K10

    谈谈Spring bean生命周期,作用

    目录1、bean作用2、bean生命周期2.1 单例管理对象2.2 非单例管理对象**2.3 引申 ​ 在Spring,那些组成应用程序主体及由Spring IoC容器所管理对象,...(1)当一个bean作用为Singleton,那么Spring IoC容器只会存在一个共享bean实例,并且所有对bean请求,只要id与该bean定义相匹配,则只会返回bean同一实例。...注意,Singleton作用Spring缺省作用。...Prototype作用bean会导致在每次对该bean请求(将其注入到另一个bean,或者以程序方式调用容器getBean()方法)时都会创建一个新bean实例。...当处理请求结束,request作用bean实例将被销毁。  (4)当一个bean作用为Session,表示在一个HTTP Session,一个bean定义对应一个实例

    55641

    谈谈 Spring Bean 生命周期和作用

    Spring Bean 生命周期比较复杂,可以分为创建和销毁两个过程。 首先,创建 Bean 会经过一系列步骤,主要包括: 实例Bean 对象。 设置 Bean 属性。...第二,Spring Bean 销毁过程会依次调用 DisposableBean destroy 方法和 Bean 自身定制 destroy 方法。...Spring Bean 有五个作用,其中最基础有下面两种: Singleton,这是 Spring 默认作用,也就是为每个 IOC 容器创建唯一一个 Bean 实 例。...另外,使用 Prototype 作用需要经过仔细思考,毕竟频繁创建和销毁 Bean 是有明显开销 。...如果是 Web 容器,则支持另外三种作用: Request,为每个 HTTP 请求创建单独 Bean 实例。 Session,很显然 Bean 实例作用是 Session 范围。

    59000
    领券