一種優雅的關閉資源的方式是使用try(){}cache(){}
就像這樣:
這時候,try()里面的資源會在return語句執行結束之后自動調用close()方法,那么問題來了,當我們使用連接池的時候,並不希望資源被close,而是希望資源用完后自動returnObject(),那么這種優雅的try語句是不是不能使用了呢?
是可以的哦~
從上面可以看出,實際上pool對放進去的連接有了額外的一層封裝,實際上是通過動態代理的方式創建連接,而這些連接的close()方法被重新定義了,在調用close方法時候實際上是調用了returnObject()方法~