En Mi aplicación estoy usando un bean User
que está Autocadenado a mi servicio MyService
y se utiliza como el inicio de sesión principal de la información del usuario (Por lo tanto, el usuario no viene como un bean estático de un xml generado dinámicamente desde un usuario conectado) Si hay diez usuarios conectados, tendré diez candidatos para el campo @AutoWired
User
. (¿verdad?) y puedo obtener cualquiera de ellos porque se ve automáticamente en el contenedor Spring y no en la sesión.Primavera @ Confusión autoajustada (contenedor o sesión)
dime si me equivoco en esto. y cómo resolverlo realmente si es posible. Pero ¿y si mi campo AutoWired se anota con @Scope ("Session")
De esta manera:
@Component("user")
@Scope("session")
public class User
{
String userid;
String name;
//getter setters etc
}
@Component
public class MyService
{
@Autowired
private User user;
}
¿Es posible obtener grano de usuario de algún otro usuario cuando llamo mi MyService
componentes. Cos MyService
es solo @Component
aunque el User
es @Scope(session)
.
Básicamente, (si me equivoco en mi suposición) creo que cuando @Autowire
un campo, se ve en el contenedor como un todo y el contenedor no se divide en subcontenedores por sesión.
Así que no es posible que cuando hago un 'SpringUtils.getContext (req) .getBean (" miservicio ")', obtengo otro bean de usuario que no está en la sesión actual. – sarmahdi
@sarmahdi: Eso es correcto. La sesión actual del usuario es una variable local de hilo mantenida por Spring. – skaffman
Así que no es posible que cuando hago un 'SpringUtils.getContext (req) .getBean (" miservicio ")', obtengo otro bean de usuario que no está en la sesión actual. En realidad recibí este problema que cargué una página y obtuve algunos detalles de otros usuarios. Así que estaba pensando que podría ser cos incluso si el usuario tiene sesiones con alcance, el servicio no es y sin ámbito son por defecto singelton. – sarmahdi