监听器加载销毁出问题
package com.imooc.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class SqlSessionFactoryUtil {
private static String RESOURCE ="mybatis-config.xml";
private static SqlSessionFactory sqlSessionFactory ;
private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
public static void initSqlSessionFactory(){
try {
InputStream is = Resources.getResourceAsStream(RESOURCE);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
public static void close(){
SqlSession sqlSession = threadLocal.get();
if(sqlSession !=null){
sqlSession.close();
threadLocal.set(null);
}
}
}package com.imooc.listener;
import com.imooc.utils.SqlSessionFactoryUtil;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class InitSqlSessionListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("容器加载中……");
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("容器销毁中……");
SqlSessionFactoryUtil.close();
}
}
上面这个能正常加载销毁,然后加上SqlSessionFactoryUtil.initSqlSessionFactory();就出错了,以下
package com.imooc.listener;
import com.imooc.utils.SqlSessionFactoryUtil;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class InitSqlSessionListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("容器加载中……");
SqlSessionFactoryUtil.initSqlSessionFactory();
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("容器销毁中……");
SqlSessionFactoryUtil.close();
}
}
1
收起
正在回答
1回答
我把你的代码放到我的里边跑了一下,没有发现错误哎。你说的是那个ERROR 那个么?
https://blog.csdn.net/ssh159/article/details/73682025 建议你看看你的jar是不是加载全了?
或者按照这个设置一下试试:
https://blog.csdn.net/christineas/article/details/81208133
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星