2. DataSource의 Connection 처리 - wonjune/DatasourceServlet GitHub Wiki
###1. DAO 에서 DataSource로 커넥션 요청(getConnection())을 하였을 때 일어나는 일
- getConnection() 후에 Connection 객체를 리턴한 것으로 보이지만 실제로는 Connection을 한번 더 감싼것임
- 실제로 리턴되는 것은 커넥션 대형 객체로서 Apache의 DBCP의 경우는 PoolableConnection 객체를 반환
- 대형 객체도 Connection 인터페이스를 구현하므로 Connection 타입 변수로 받아지는 것
- 대형 객체 내에는 진짜 커넥션을 가리키는 참조변수 _conn 과 커넥션풀을 가리키는 참조변수 _pool이 들어있음
- 외부에서 요청을 받았을 때 참조변수를 이용하여 진짜 커넥션에 작업을 위임
- 작업을 끝난 후 conn.close()를 호출하면 실제로 커넥션이 닫히는 것이 아니라 커넥션 풀로 반납하는 것