满屏幕的线程Hibernate结合Servlet…
来源:互联网 发布:小额贷款骗局知乎 编辑:程序博客网 时间:2024/06/09 22:46
发觉Hibernate每次重启都会开一堆线程来处理,所以,对于最开始通过xml文件启动hibernate的语句,一定要用单例模式。何为单例模式,就是用在类里面,用static:
每刷新一次页面,立马多出4个线程(如果不用C3P0的线程池管理,则多出1个)。再多刷几次页面,线程就挤爆你的机器了。所以一定要用单例模式,cfg啥的生成一次就可以了。从这里也可以体现出,有个帮你管类的工厂是多么地重要。这就体现了IOC(控制反转)的重要性。
public class StudentTest{ private staticConfiguration cfg; private staticStandardServiceRegistryBuilder ssrb; private staticServiceRegistry service; private staticSessionFactory factory; private static int count=0; StudentTest(){ if(StudentTest.cfg==null){ StudentTest.cfg = newConfiguration().configure(); StudentTest.ssrb = newStandardServiceRegistryBuilder() .applySettings(cfg.getProperties()); StudentTest.service =ssrb.build(); //SessionFactory factory =cfg.buildSessionFactory(service); StudentTest.factory =cfg.buildSessionFactory(newStandardServiceRegistryBuilder() .applySettings(cfg.getProperties()).build()); }else{} } 不然就等着GG(不用的话)……
这里就不列完整的servlet工程了,单独列出servlet文件,我们可以看看具体怎么用hibernate的:
importjava.io.IOException;
private static final long serialVersionUID =1L; private String message; @Override public void init() throwsServletException { message ="Hello World"; } @Override public void doGet(HttpServletRequestrequest, HttpServletResponse response) throws ServletException,IOException { // 设置响应内容类型 response.setContentType("text/html"); // 实际的逻辑是在这里 StudentTest st = newStudentTest(); String r =st.get(); PrintWriter out = response.getWriter(); out.println("<h1>"+ message +"</h1>"); out.println("<h4>"+ r +"</h4>"); } @Override public void destroy() { // 什么也不做 }
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
// @authorflash胜龙
public class HelloWorld extendsHttpServlet {
}
没错,就是红字部分那么简单。那么简单有问题吗?当然有!如果不用单例模式,则会是这样的:
每刷新一次页面,立马多出4个线程(如果不用C3P0的线程池管理,则多出1个)。再多刷几次页面,线程就挤爆你的机器了。所以一定要用单例模式,cfg啥的生成一次就可以了。从这里也可以体现出,有个帮你管类的工厂是多么地重要。这就体现了IOC(控制反转)的重要性。
0 0
- 满屏幕的线程Hibernate结合Servlet…
- servlet与ajax的结合
- Servlet、 Hibernate 中 Session 线程 安全问题
- sring 与hibernate的结合
- Spring 与hibernate 的结合
- maven hibernate 的结合使用
- Hibernate和Maven的结合
- 线程的分离与结合
- 线程的结合与分离
- 线程的分离和结合
- 线程的分离与结合
- Servlet的线程安全问题
- servlet的线程安全问题
- servlet的线程安全
- Servlet的线程安全
- Servlet的线程安全问题
- Servlet的线程安全
- Servlet的线程安全问题
- 系统的简单注解
- 从最基本的Netbeans默认Servlet项…
- 利用MFC中的picture control 控件显示图像
- 从最基本的Netbeans默认Servlet项…
- java动态代理之cglib动态代理实现
- 满屏幕的线程Hibernate结合Servlet…
- SSH框架特例实战【一】(SpringMVC…
- 为何有DAO与Service层?为何先搞Da…
- SSH框架特例实战【二】关于Autowir…
- java.lang.NoSuchMethodError:&nbs…
- @Repository、@Service、@Controll…
- Netbeans许可证,是否能商用,是否…
- Setting property &#039…
- C++函数模板