监听器加载销毁出问题

监听器加载销毁出问题

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();
    }
}

http://img1.sycdn.imooc.com//climg/5bc976ab0001adb608040244.jpg

上面这个能正常加载销毁,然后加上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();
    }
}

http://img1.sycdn.imooc.com//climg/5bc977620001f9b411630259.jpg


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

我把你的代码放到我的里边跑了一下,没有发现错误哎。你说的是那个ERROR 那个么?

https://blog.csdn.net/ssh159/article/details/73682025  建议你看看你的jar是不是加载全了?

或者按照这个设置一下试试:

https://blog.csdn.net/christineas/article/details/81208133


  • 慕函数0017771 提问者 #1
    解决了,看了报错java.io.IOException: Could not find resource org/mybatis/example/BlogMapper.xml,把这个代码删除就好了,佛了佛了,非常感谢
    2018-10-19 19:09:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师