관리 메뉴

진취적 삶

8.3 DataSource 설정 본문

스프링 5 프로그래밍 입문/8.DB 연동

8.3 DataSource 설정

hp0724 2023. 9. 11. 08:58

8.3.1 Tomcat JDBC의 주요 프로퍼티

tomcat JDBC 모듈의 pool.DataSource 클래스는 커넥션 풀 기능을 제공

커넥션 풀은 커넥션을 생성하고 유지한다.

커넥션 풀에 커넥션을 요청하면 해당 커넥션은 활성 상태가 된다. 커넥션을 다시

커넥션 풀에 반환하면 idel 상태가 된다.

datasource.getConnection() : pool에서 커넥션을 가져온다.

커넥션을 종료하면 실제 커넥션을 끊지 않고 풀에 반환한다.

maxActive는 활성 상태가 가능한 최대 커넥션 개수

maxWait 커넥션 반환 대기 시간

커넥션 풀을 사용하면 미리 커넥션을 생성했다가 필요할 때에 커넥션을 꺼내 쓰므로 구하는 시간이 줄어 전체 응답 시간도 짧아진다.

커넥션 풀을 초기화 할때는 최소 수준의 커넥션을 미리 생성하는것이 좋다.

@Bean(destroyMethod = "close") 
	public DataSource dataSource(){
		 DataSource ds = new DataSource();
		 ds.setDriverClassName("com.mysql.jdbc.Driver");
		 ds.setUrl("jdbc:mysql://localhost/spring5fs?characterEncoding=utf8&serverTimezone=UTC");
		 ds.setUsername("spring5");
		 ds.setPassword("spring5");
		 ds.setInitialSize(5);
		 ds.setMaxActive(20);
		 ds.setMaxIdle(10);
		 ds.setTestWhileIdle(true);
		 ds.setMinEvictableIdleTimeMillis(1000*60*3); //3분
		 ds.setTimeBetweenEvictionRunsMillis(1000*10);
		 return ds;
		 
	}