在Hibernate的帮助文档里面的Quickstart with Tomcat一章看到这段代码
public class HibernateUtil {
private static Log log = LogFactory.getLog(HibernateUtil.class); private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed log.error("Initial SessionFactory creation failed.", ex); throw new ExceptionInInitializerError(ex); } } public static final ThreadLocal session = new ThreadLocal();
public class HibernateUtil {
private static Log log = LogFactory.getLog(HibernateUtil.class); private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed log.error("Initial SessionFactory creation failed.", ex); throw new ExceptionInInitializerError(ex); } } public static final ThreadLocal session = new ThreadLocal();
解决方案 »
- NaN是什么啊?为什么Double.NaN != Double.NaN啊?
- UnitTest如果根据method的return 结果就比较容易测,如果是void的method,可能实现的业务功能比较重要,但是并没有返回或者返回值并不重要
- 有没有办法用代码模拟用户鼠标点击事件?
- 鼠标呀鼠标!!! 头疼呀头疼!!!
- 大家帮忙看一下,帮解决了,很简单的一个问题!
- 难度极大,高手请进,swing能定制一个这样的组件吗?
- 请斑竹帮忙啊!!!怎样做一个类似oicq总是在最前面的空窗口!!!
- 请问谁有有关jbuilder 6比较好一些的中文电子书籍,只要可下载就给分!!
- 一个关于数据库的问题,紧急!!!
- java 实例变量存放在堆区还是栈区?
- 紧急求助。我的服务器出现了JAVA进程占用CPU的99%,随后网站的TOMCAT就提示 java heap sapce
- JFrame动态改变大小,上面的JPanel如何也跟着动态改变
public class HibernateUtil {
private static Log log = LogFactory.getLog(HibernateUtil.class);
private static final SessionFactory sessionFactory;
//=====================这部分以下
static {
try {
// Create the SessionFactory
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
log.error("Initial SessionFactory creation failed.", ex);
throw new ExceptionInInitializerError(ex);
}
}
//=====================这部分以上
public static final ThreadLocal session = new ThreadLocal();
.
.
.
.}
static{}这部分是什么意思啊?既不是HibernateUtil类的方法,也不是什么属性?
按你的说法,我可以理解为这部分代码相当于静态的构造函数?
那么,是在所有实例化每一个HibernateUtil类型的对象时执行这些static代码呢,还是仅仅在实例化第一个HibernateUtil类型的对象时执行呢?
我想问的是,假如声明四个HibernateUtil类型的变量a,b,c,d的话,那么static{}里面的代码是在HibernateUtil a = new HibernateUtil()的时候,HibernateUtil b = new HibernateUtil()的时候,HibernateUtil c = new HibernateUtil()的时候,HibernateUtil d = new HibernateUtil()的时候都执行呢,还是仅仅在HibernateUtil a = new HibernateUtil()的时候执行?