1. HikariCP API
- 스프링에서 기본으로 제공하는 것 X
- 왜 사용하는가? 성능이 높아지기 때문
|
connection을 생성-연결-삭제를 계속하다보면 성능 저하가 일어난다. 특히 동시접속이 많은 경우
CP는 Connection Pool로 사용하고 있지 않은 커넥션을 이용하고 후에 반납한다(재사용)
2. HikariCP 사용하기
1) 설치
pom.xml파일에서 dependency에 추가
2) 설정
[src]-[webapp]-[WEB-INF]-[spring]- root-context.xml파일에 내용 추가
- 1. HikariConfig
<bean id = hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mysql"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</bean>
<bean> --> 객체를 생성하는 것
- id : 생성한 클래스를 지정하는 이름
(임의로 지정해주어도 되지만 일반적으로는 클래스 이름과 동일하게 지정
단! 첫 글자는 소문자여야함)
- class : 어떤 클래스 객체를 생성할 것인지
<property> --> setter 실행
- name에 맞게 value를 넣어준다 --> 오타나면 안됨!!!
- 2. HikariDataSource
<bean id = "dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"/>
</bean>
HikariConfig --> CP를 만들어서 관리하는 것이 HikariDataSource
<constructor-arg> --> hikariconfig를 참조하기 위한 생성자
3. Mybatis-spring
MVNrepository에서 검색 후 dependency를 pom.xml에 추가
SqlSessionfactoryBean.class --> 가장 중요한 클래스
- Sql을 전송하는 역할
- root-context.xml파일에 bean으로 객체 생성
<bean class="">
- bean class에 클래스 파일 이름을 넣어야 하는데 오타가 나면 안되므로 해당 클래스 오른쪽 클릭 후
Copy Qualified Name선택
- Copy : 클래스 이름만
- Copy Qualified Name : 클래스가 있는 패키지 이름까지
- SqlSessionFactoryBean과 DataSource 연결
- 1. setter 이용 --> property
- 2. 생성자 이용 --> constructor-arg
무엇을 이용하는가? --> SqlSessionFactoryBean 클래스를 살펴보자!
- dataSource 속성 확인 --> 이용해준다
- JDBC
- 우리가 직접 사용하지는 않지만 JDBC는 필요
- pom.xml에 dependency 추가
- 1) MySQL JDBC
- 2) Spring JDBC
<참고> 구조 정리
4. SqlSessionFactoryBean과 BoardMapper(SQL)와 연결
<mybatis:scan base-package="kr.board.mapper"/>
Mapper는 여러개일 확률이 높기 때문에 bean으로 일일이 하는 것이 아니라 scan을 이용한다
mybatis 접두어를 사용한다고 추가하지 않았기 때문에 에러 발생
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
추가해주고 밑에 스키마파일도 지정해주어야 한다
|
XML 구조
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
xmlns:mybatis --> namespace
xsi:schemaLocation --> schema 파일 지정 --> 그래야 쓸 수 있다.
5. Scan -- Controller 연결
scan --> 생성된 객체는 메모리에 올라가 있다
BoardController에 @Autowired --> 바로 밑에 private BoardMapper --> 메모리에 있는 Mapper를 찾아 연결
6. 실행
[Spring] 글쓰기 기능 넣기 (0) | 2022.06.17 |
---|---|
[Spring] 처음 실행될 때 (0) | 2022.06.14 |
[Spring] 스프링의 기본 설정 파일 (0) | 2022.05.31 |
[Spring] Mapper, DB 연결(1) (0) | 2022.05.31 |
[Spring] POJO 만들기 (0) | 2022.05.26 |