HikariCP 라는 커넥션 풀 사용할 것이다.
그 이유는 spring boot에서 공식저그로 지원하는 커넥션 풀이 Hikari CP이기 때문이다.
HikariCP는 가장 효율적인 라이브러리를 가지고 있다.
거기에 맞춰서 HikariCP를 사용할 예정이다.
Maven Repository: com.zaxxer » HikariCP » 5.0.1
역시나 마찬가지로 maven을 복사해서 pom.xml 외부라이브러리 주석 안에 추가해주자
root-context
root-context는 Hikari 객체 사용할수 있도록하는 준비과정이다.
<!-- hikariCP : 연결정보 저장객체 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
</bean>
<!-- hikariCP : 연결정보 저장객체 -->
원래는 dataSource로 바로 연결했는데, 한 단계 거쳐서 dataSource로 보낼 것이다.
property(특성)를 추가해주자.
hikariCP : 연결정보 저장객체
<!-- hikariCP : 연결정보 저장객체 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/springdb"></property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>
</bean>
<!-- hikariCP : 연결정보 저장객체 -->
기존 dataSource 코드 주석해주고, 새로 작성 - hikariCP 전용 dataSource
디비 연결 다 쓰고 없어질때 자동 종료
→ 디비 설정 필요(constructor-arg - 생성자)
dataSource(CP) : 디비연결
<!-- dataSource(CP) : 디비연결 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"/>
</bean>
<!-- dataSource(CP) : 디비연결 -->
sqlSession 객체 생성
sqlSession : 디비연결, 데이터처리(SQL실행, Mybatis 설정), 자동 자원해제처리, 기본적인 트랜잭션관리, 쓰레드 처리 안정성 높임
<!-- sqlSession : 디비연결, 데이터처리(SQL실행, Mybatis 설정), 자동 자원해체처리 -->
<!-- 기본적인 트랜잭션관리, 쓰레드 처리 안정성 높임 -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="close">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<!-- sqlSession : 디비연결, 데이터처리(SQL실행, Mybatis 설정), 자동 자원해체처리 -->
hikari Config를 통해 db가져오고 datasource에 전달
→ sqlSessionFactory에 전달
→ sqlSession에 담김
→ 객체 지향적이면서 문제가 생겼을때 대처하기 쉬운 구조를 가지고있음
잘됐는지 MyBatisTest.java 22번 라인에 추가한다.
'spring · spring boot' 카테고리의 다른 글
[Spring] 프로젝트 base 설정 (0) | 2023.12.14 |
---|---|
[Spring] mybatis 개발 사용 순서 따라 적용해보기 (0) | 2023.12.12 |
[spring] 의존 객체 자동 주입 (0) | 2023.12.04 |
[spring] sqlSessionFactory, mybatis-config.xml (1) | 2023.12.04 |
[spring] root-context.xml와 inject, test 어노테이션 (1) | 2023.12.04 |