項目中用的是druid連接池,持久層用的是MyBatis,但是項目中需要用到直接執行SQL語句的需求,於是我通過
@Autowired
private SqlSessionFactory sessionFactory;
獲取到了sessionFactory,然後通過sessionFactory.openSession()獲取到了SqlSession,最後用SqlSession.getConnection();獲取到了connection,別問我為什麼這麼費勁....因為需要用到事務手動管理,到了這一層,我才可以手動控制是否自動提交事務,但是問題來了,現在這種情況下,我如果不主動close這個connection,那麼這個connection是否會洩露呢,換種說法,這個connection是否還受druid管理呢?
還是我自己回答一下吧,根據實測發現,在運行了30分鐘後,報了這麼一大坨異常,這一坨異常就是觸發了druid的這個設置,然後連接被回收。