发觉Hibernate每次重启都会开一堆线程来处理,所以,对于最开始通过xml文件启动hibernate的语句,一定要用单例模式。何为单例模式,就是用在类里面,用static:
不然就等着GG(不用的话)……
每刷新一次页面,立马多出4个线程(如果不用C3P0的线程池管理,则多出1个)。再多刷几次页面,线程就挤爆你的机器了。所以一定要用单例模式,cfg啥的生成一次就可以了。从这里也可以体现出,有个帮你管类的工厂是多么地重要。这就体现了IOC(控制反转)的重要性。
public class StudentTest {
|
这里就不列完整的servlet工程了,单独列出servlet文件,我们可以看看具体怎么用hibernate的:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// @author flash胜龙
public class HelloWorld extends HttpServlet {
}
|
没错,就是红字部分那么简单。那么简单有问题吗?当然有!如果不用单例模式,则会是这样的:
每刷新一次页面,立马多出4个线程(如果不用C3P0的线程池管理,则多出1个)。再多刷几次页面,线程就挤爆你的机器了。所以一定要用单例模式,cfg啥的生成一次就可以了。从这里也可以体现出,有个帮你管类的工厂是多么地重要。这就体现了IOC(控制反转)的重要性。