Povos, vou tentar aqui explicar o meu problema.
Tenho duas conexões de banco de dados na aplicação que trabalho (aplicação web), e dependendo da escolha do usuário ao realizar o login, ele vai escolher então qual banco de dados deseja se conectar. Até aqui tudo bem.
O problema acontece quando o banco é selecionado. Para que o sistema escolha qual SessionFactory utilizar, é preciso passar como parâmetro o banco escolhido no login do usuário. Isso é extremamente incomodo, já que as assinaturas de métodos precisam ser alteradas para passar como parâmetro a informação de qual banco vai ser utilizado.
Gostaria de saber se existe uma estratégia para, quando o usuário logar no sistema, a informação do banco de escolha daquele usuário seja guardada em algum lugar que possa ser acessado que qualquer lugar do sistema.
Lembrando que, o usuário X pode escolher o banco 1, e o usuário Y pode escolher o banco 2.
Obrigado.
Olha só… eu acesso o nome do meu User apenas como User.getName(); em qualquer lugar da minha aplicação… não sei se serve… dai vc colocaria o BD ai…
package commun;
public class User {
/**
* @return the name
*/
public static String getName() {
return name;
}
/**
* @param aName the name to set
*/
public static void setName(String aName) {
name = aName;
}
/**
* @param aPassword the password to set
*/
public static void setPassword(String aPassword) {
password = aPassword;
}
protected User() {
}
public static User getInstance(){
if(instance == null){
instance = new User();
}
return instance;
}
public String getUserPassword() {
return password;
}
private static String name;
private static String password;
private static User instance = null;
}
Olá Vinicius.
Bem, acredito que sua aplicação deve ser Desktop.
Singleton não se adapta as minhas necessidades. Se o usuário Y logar no sistema e escolher o Banco1 e setar a propriedade em um Singleton, quando o usuário X logar e selecionar o Banco2 setando no mesmo Singleton, a informação do banco do usuário Y será perdida, passando esse à acessar o Banco2. Entendeu?
Estou estudando Bean scopes do Spring. Acho que pode dar certo.
Obrigado pelos posts.
Não era tão simples quando jogar na sessão, já que eu não tenho acesso ao request nos DAO’s
O problema foi resolvido utilizando o Bean Scope do Spring.
[]'s
JL