Um Bean é um classe que possui uma certa padronização, entre elas o seu construtor não deve receber parametros … Para instanciar uma conexão utilizando um javaBean, imagino que teria que criar métodos para isso, certo? Porém isso não estaria fugindo as regras do javaBean? Ou melhor, qual a melhor forma de se criar uma conexão à um Bd através de uma aplicação JSP?
Grato
Volnei Granado Munhoz 
Volnei, recentemente tive que fazer um trabalho para a universidade que era mais ou menos parecido com o que vc está falando. O que fiz foi o seguinte. Criei uma hierarquia de classes(dados->repositorio->cadastro->fachada) e, na fachada usei o padrão singleton(conhece?). Era nos repositorios que eu me preocupava com o conexao. Nas, jsp, eu tinha os beans, mas quando queria executar uma busca no banco usava a fachada. Acho que assim as coisas ficam melhor organizadas.
valeuz…
Olá Jack,
Pra falar a verdade estou meio perdido vamos as principais dúvidas:
Não conheço o padrão singleton :-[
Oque faz realmente a sua classe fachada?
Grato
Volnei Granado Munhoz 
Bem, o trabalho que eu devia fazer era um biblioteca digital onde os usuarios se cadastravam e submetiam obras. Depois as obras poderiam ser buscadas por qualquer outro usuario. Isso é só pra vc ter uma ideia do que era o projeto.
Dito isso, eu tinha os seguintes Repositorios:
RepositorioObra
RepositorioUsuario
RepositorioAutor
Cada repositorio tinha metodos para realizar operações com banco. Depois, na camada superior eu criava os cadastros e na Fachada eu tinha os seguintes objetos:
CadastroObra
CadastroUsuario
CadastroAutor
Dessa maneira, a Fachada tinha todos os metodo desses cadastros. Ou seja, a minha fachada realizava todas as operações necessarias com o banco. Desde inserir e remover a fazer uma busca. Quando, nas jsp eu quiser fazer alguma operação chamo a fachada.
Agora o singleton:
Para evitar de ficar criando varias fachadas, uma para cada pessoa que acessasse o site, faz o seguinte na fachada:
1. Cria uma variavel de classe do tipo Fachada
public class Fachada {
…
private static Fachada singleton;
…
}
2. Cria um construtor que inicia todos os cadastros da Fachada mas que não modifica a variavel singleton:
public Fachada() {
cadObra = new CadastroObra();
…
}
3. Agora, o mais importante. Como o tomcat(e, acho, todos os containers) tratam cada acesso como um thread eu criava um metodo synchronized assim:
| Code: |
|
De maneira que, sempre que eu quiser acessar a fachada, eu uso esse metodo. Ou seja:
Fachada f = Fachada.getFachada();
ao inves de
Fachada f = new Fachada();
Isso garante que eu crie a fachada apenas uma vez e depois fique usando o singleton. A vantagem é ganho de tempo, já que criar uma fachada leva tempo. Imagine num projeto maior ficar instanciando 10, 20 cadastros. O metodo marcado como synchronized impede que dois threds tentem alterar o singleton ao mesmo tempo.
valeuz… :-]
ah…vc participa do forum da info tambem, certo?!

valeuz…
Pois é participo a algum tempo do fórum da Info, porém após conhecer esse fórum (portaljava) achei que é melhor pois aqui existem moderadores e o pessoal daqui parece mais disposto a ajudar!
Obrigado pela explicação acima!
Valeu
Volnei Granado Munhoz 