首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring bean和在应用程序生命周期中更改bean参数

Spring bean和在应用程序生命周期中更改bean参数
EN

Stack Overflow用户
提问于 2012-02-14 21:51:14
回答 2查看 214关注 0票数 1

我有一个基于Spring的web应用程序。定义了一个包含某些类MyClass的bean,该类也与bean一起传递给MyEndpointextends AbstractMarshallingPayloadEndpoint

MyClass已经将beans中的一些布尔参数设置为true

如果我的应用程序将此参数编程更改为false,那么下一个请求是也将其设置为false,还是包含一个默认的bean参数- true

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-14 22:07:21

这取决于bean的scope (如果没有指定,则默认为singleton )。

  1. 如果它属于singleton作用域,则在应用程序上下文中有该bean的一个实例,每次请求该bean时,都会得到该实例。如果您在具有此作用域的请求中更改它,则更改将被保留。
  2. 如果它属于prototype作用域,则每次您向应用程序上下文请求一个新实例时,都会为您提供一个新实例(使用相同的参数创建)。如果在具有此范围的请求中对其进行更改,则在获取此对象的另一个实例时,更改将被忽略。

这是最常用的两个(至少我在Spring的时候是这样)。还有其他作用域(请求、会话、全局会话),但您应该阅读documentation on them that Spring provides

票数 0
EN

Stack Overflow用户

发布于 2012-02-14 22:08:47

如果你想让这个属性根据你的应用程序的业务逻辑动态地改变,而不是只在每个新的请求时被重置(否则请求作用域就会变魔术),考虑工厂方法(特别是Lookup Method Injection)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9278046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档