给定一个配置了会话范围的spring bean,例如:
@Component
@Scope(proxyMode=ScopedProxyMode.TARGET_CLASS,value=WebApplicationContext.SCOPE_SESSION)
public class SomeBean {
}有什么方法可以控制Spring在http会话中存储bean所使用的名称吗?
默认情况下,spring seams使用会话密钥scopedTarget.someBean,有什么我可以添加到注释中,以便在会话中显式指定属性名称吗?
发布于 2012-05-14 11:32:19
我会使用:
@Component (value="mySpecialName")
@Scope (value="session")发布于 2019-11-28 18:47:06
你不能。scopedTarget部件在Spring中的作用域代理创建中是硬编码的。因此,如果不重写框架的各个部分,这是不可能的。
该名称被硬编码在委托给ScopedProxyUtils的ScopedProxyBeanDefinitionDecorator中。
使用作用域代理的事实是框架内部的一些东西。您可能希望使用它在会话中存储一些内容,并在页面或类似的内容中检索它。不要,只公开常规bean,它将委托给适当的作用域实例。
https://stackoverflow.com/questions/10577098
复制相似问题