public class HibernateFactory {
private static SessionFactory factory;
static {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
factory = cfg.buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}
O bloco estático irá carregar as configurações apenas da classe “Produto”.
No caso, esse processo acaba sendo um pouco lento, por isso a orientação de colocá-lo em um bloco estático. Sendo assim, a classe é carregada no Class Loader, apenas uma vez, correto?
E se eu desejasse que ele carregasse informaçòes de uma outra classe, em outro ponto do sistema? A única solução seria modificar a classe para que eu pudesse instanciá-la com um new HibernateFactory()?
mais um bloco static ele nao é recarregado qdo vc dar um new nao… apenas um bloco da instancia… que acontece isso… vc pode criar um bloco da instancia q qdo vc der um new ele é recarregado novamente…
class X{
{ System.out.println("bloco"};
//bloco da instancia
}