E aí moçada, to quase concluindo minha primeira aplicação web comercial em java, bom, sei que a maioria aqui vai meio que contra, mas eu a desenvolvi usando o Struts :), usei o hibernate para fazer a persistencia, utilizando o pattern DAO, daí na minha ignorancia o que to fazendo, estou instanciando um SessionFactory para cara DAO, e isso pelo que li, e agora estou sentindo na pele, torna o sistema lento, como eu posso fazer isso apenas quando o tomcat iniciar ou pelo menos no primeiro acesso a aplicação? Já tentei fazer um tal de “listener” no tomcat, mas não entendo como resgatar esse objeto instanciado, será que alguém poderia me dar uma força, me explicando o funcionamento desse tipo de funcionalidade? como por exemplo, onde ir buscar esse objeto instanciado, ou se isso não é a melhor solução me dar uma dica de como fazer algo melhor.
Só completando a resposta do LIPE…
vc pode iniciar o seu SessionFactory e deixá-lo como Static… para fazer isso na inicialização do Tomcat, edite o arquivo web.xml e ponha algo assim
valeu moçada, mas ainda tenho uma dúvida (tô devagar hein?), ManchesterR, como eu faço dentro da minha aplicação o acesso a esse objeto “SeuServlet” tipo:
class MyAction extends Action {
public ActionForward execute( /* 4 objetos complexos e muitas vezes desnecessários */) throws Exception {
SessionFactory sf = seuServlet.getSessionFactory(); //instancia de SeuServlet
}
}
Nossa, caiu a ficha, quando o atributo é estático então a VM reserva espaço para ele na memória, depois é só acessar de forma estática que ele não será carregado novamente…