커넥션풀과 데이터소스 이해

born_a·2022년 8월 18일
0

커넥션 풀 이해

con을 close를 하더라도 커넥션 풀에서 꺼내면 히카리 커넥션 풀이라는게 감싸고 있어서 커넥션 풀에 커넥션을 반환하는 로직이 들어있다.

DataSource 이해

DataSource 예제1 - DriveManager

DriverManager.getConnection(URL, USERNAME, PASSWORD); // 커넥션 하나를 db랑 연결해서 얻게됨

예외가 왜 계속 발생하는 걸까

@Test
    void driverManager() throws SQLException {
        Connection con1 = DriverManager.getConnection(URL, USERNAME, PASSWORD);//커넥션 하나를 db랑 연결해서 얻게됨
        Connection con2 = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        log.info("connection={},class={}",con1,con1.getClass());
        log.info("connection={},class={}",con2,con2.getClass());
    }

    @Test
    void dataSourceDriverManager() throws SQLException {
        //DriverManagerDataSource - 항상 새로운 커넥션을 획득
        DriverManagerDataSource dataSource = new DriverManagerDataSource(URL, USERNAME, PASSWORD);
        userDataSource(dataSource);

    }

DataSource 예제2 - 커넥션 풀

스프링에서 jdbc를 쓰면 자동으로 hikari가 import됨

DataSource 적용

dataSource를 사용하려면 의존관계 주입을 받아야한다

반환해줄 때 hikari 프록시 안에 객체를 생성해서 그 안에 conn0을 담아서 반환. 따라서 hikari 프록시 인스턴스 값이 다른것.

0개의 댓글

관련 채용 정보