728x90
SMALL
conn.close()와 try-with-resources 구문은 자원 관리에 사용된다
하지만 작동 방식에 차이가 있다고한다
- conn.close()
conn.close()는 명시적으로 데이터베이스 연결과 같은 자원을 해제하는 데 사용된다
이건 개발자가 직접 자원을 해제하는 책임을 지게한다... 책임지기 싫어....
그리고 주로 finally 블록 내에서 호출된다
장점이라는 것은 딱히 없고 finally 블록이 없거나 예외 처리가 잘못되면 자원이 제대로 해제되지 않을 수 있어 리소스 누수가 발생할 가능성이 있다는 단점만이 존재...
Connection conn = null;
try {
conn = dataSource.getConnection();
// 연결
} catch (SQLException e) {
// 예외처리
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// close 예외처리
}
}
}
- try-with-resources 구문 사용
try-with-resources 구문은 Java 7부터 도입된 구문이라고하고, AutoCloseable 인터페이스를 구현한 객체들을 자동으로 관리한다고 한다.
이 구문을 사용하면 try 블록이 종료될 때 자동으로 자원을 해제하는 혁명을 가져온다
그래서 위에 썼던 것처럼 finally 블록을 작성할 필요가 없고, 자원 해제 코드를 작성할 필요가 없어진다
자원의 해제가 보장되므로 코드가 더 간결하고, 리소스 누수를 방지할 수 있다!
try (Connection conn = dataSource.getConnection()) {
// 연결
} catch (SQLException e) {
// 에러처리
}
// finally block이 필요 없고 자동으로 닫힌다
앞으로는 자동으로 자원을 해제해주는 try-with-resources구문을 쓰는 것이 좋을 것 같다
728x90
LIST
'JAVA > Java' 카테고리의 다른 글
maven 설치 및 환경변수 설정 (0) | 2023.06.30 |
---|---|
slf4j.Logger 라이브러리를 통해 logger기록하기 (0) | 2023.06.23 |
[websocket]스프링 웹소켓을 이용한 클라이언트 서버 양방향 통신, url을 통해 websocket서버로 보내기, url을 통한 실시간 소켓알람 (0) | 2023.06.14 |
java다운로드, 시스템 환경변수 설정, java 버전 확인 (0) | 2023.03.29 |
session과 Httpsessionlistener (0) | 2022.10.25 |
댓글