-이전글-
[Spring Boot/DB 설정] - [Spring Boot] MySQL - Mybatis JAVA config
DBCP는 DataBase Connection Pool 의 약자로 DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 한다.
DBCP를 사용하게 되면, WAS 실행 시 미리 일정량의 DB Connection 객체를 생성하고 Pool 이라는 공간에 저장해 둔다. 그리고 DB 연결 요청이 있으면, 이 Pool 이라는 공간에서 Connection 객체를 가져다 쓰고 반환 하게 한다.
DBCP를 사용하는 가장큰 이유는 효율성이다.
Connection Pool이란 Pool속에 Connection(DataBase와의 연결)을 미리 만들어 두고 DataBase에 접근시 Pool에 남아있는 Connection중 하나를 받아와서 사용한 뒤 반환하는 기법을 말한다.
HikariCP는 스프링 부트 2.0부터 설정된 default JDBC Connection Pool입니다.기존의 DBCP들 보다 빠르게 작업을 처리하고 가볍습니다.
spring:
datasource:
hikari:
driver-class-name: com.mysql.cj.jdbc.Driver
username: {id}
password: {password}
jdbc-url: jdbc:mysql://{url}:{port}/{db스키마}
minimum-idle: 5
maximum-pool-size: 10
idle-timeout: 30000
pool-name: DevLogHikariCP
max-lifetime: 200000
connection-timeout: 30000
connection-test-query: /*CONNECTION TEST QUERY*/SELECT NOW() FROM DUAL
minimum-idle
Connection Pool에 유지 가능한 최소 커넥션 개수
maximum-pool-size
Connection Pool에 유지 가능한 최대 커넥션 개수
idle-timeout
Connection이 Poll에서 유휴상태(사용하지 않는 상태)로 남을 수 있는 최대 시간
pool-name
Connction Pool 이름
max-lifetime
Connection의 최대 유지 가능 시간
connection-timeout
Pool에서 Connection을 구할 때 대기시간, 대기시간안에 구하지 못하면 Exception
connection-test-query
Connection이 잘 되었는지 확인하는 TEST SQL
@Configuration
@MapperScan(basePackages = {"mapper들이 있는 패키지경로"})
public class DBConfiguration {
@Autowired
ApplicationContext applicationContext;
@Bean
@ConfigurationProperties(prefix="spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
@Bean
public DataSource dataSource() {
DataSource dataSource = new HikariDataSource(hikariConfig());
System.out.println("DataSource connection : " + dataSource.toString());
return dataSource;
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws IOException {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setConfigLocation(applicationContext.getResource("classpath:/mybatis/mybatis-config.xml"));
factoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/*Mapper.xml"));
return factoryBean;
}
@Bean
public SqlSessionTemplate sqlSession(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
@ConfigurationProperties
application.yml에서 spring.datasource.hikari.* 에 해당하는 값들을 바인딩해준다.
SpringBoot logback 파일적재 (2) | 2021.10.27 |
---|---|
SpringBoot logback / log4jdbc 설정 (4) | 2021.10.19 |
Spring JPA란 (1) | 2021.10.17 |
Spring AOP Transaction설정 (0) | 2021.10.16 |
[Spring Boot] MySQL - Mybatis JAVA config (2) | 2021.10.10 |
댓글 영역