【发布时间】:2012-02-10 18:37:11
【问题描述】:
在我的应用程序中,我使用了一个 User bean,它自动连接到我的服务 MyService,并将其用作登录用户信息的原则(因此用户不是来自 xml 的静态 bean,而是动态生成的来自登录用户)如果有十个用户登录,我将有十个候选人用于 @AutoWired User 字段。 (对吗?)我可以在 Spring 容器中获得其中任何一个,因为 AutoWired 看起来是在 Spring 容器中而不是会话中。
如果我错了,请告诉我。以及如果可能的话如何实际解决它。但是,如果我的 AutoWired 字段用 @Scope ("Session") 注释怎么办?
像这样:
@Component("user")
@Scope("session")
public class User
{
String userid;
String name;
//getter setters etc
}
@Component
public class MyService
{
@Autowired
private User user;
}
当我调用我的MyService 组件时,是否可以获得其他用户的用户 bean。因为MyService 只是@Component,即使User 是@Scope(session)。
基本上,(如果我的假设有误)我认为当您@Autowire 一个字段时,它会整体查看容器,并且每个会话不会将容器划分为子容器。
【问题讨论】:
标签: spring dependency-injection annotations autowired