e.den
eden.dev.log
e.den
전체 방문자
오늘
어제
  • 분류 전체보기 (57)
    • 슬기로운 취준 생활 (1)
    • Study (30)
      • Swift (7)
      • iOS (6)
      • Java (2)
      • Spring (6)
      • Algorithm (9)
    • Coding Test (8)
      • Swea (0)
      • Baekjoon (8)
      • Programmers (0)
    • 삽질기 (3)
    • 독서록 (15)
      • Clean Architecture (5)
      • Clean Code (10)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • property
  • Algorithm
  • lifecycle
  • 자료구조
  • 프로퍼티
  • mybatis
  • Map
  • RunLoop
  • flatmap
  • 클린아키텍처
  • Spring
  • initializer
  • CoreAnimation
  • swift
  • CGLayer
  • Filter
  • 부스트코스
  • compactMap
  • lombok
  • java
  • 정렬
  • reduce
  • ios
  • 고차함수
  • CleanArchitecture
  • MySQL
  • 알고리즘
  • 클린코드
  • cleancode
  • UITextView

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
e.den

eden.dev.log

[Spring] 스프링과 mysql 연동하기
Study/Spring

[Spring] 스프링과 mysql 연동하기

2020. 7. 5. 16:06

mysql이 설치된 환경으로 가정하고 글을 시작한다.

나는 실행할 예제로 book_ex라는 스키마를 하나 생성했다.

 

일반적으로 여러 명의 사용자를 동시에 처리하는 웹 애플리케이션의 경우

데이터베이스 연결을 이용할 때는 '커넥션 풀(Connection Pool)'을 이용한다.

Java에서는 DataSource라는 인터페이스를 통해 커넥션 풀을 사용한다.

여기서 커넥션 풀은 HikariCP(https://github.com/brettwooldridge/HikariCP)를 쓸 것이다.

 

우선 mysql과 연동하는 라이브러리를 사용해야 하기 때문에 pom.xml에 이렇게 추가해준다.

버전에 주의하자. 설치된 mysql 버전과 일치해야 함.

그리고 위에서 말했듯 HikariCP를 사용할 것이므로 HikariCP도 추가한다.

현재 2020년 7월 기준 가장 최신 버전

 

root-context.xml은 직접 <bean> 태그를 이용해 작성한다.

스프링에서 root-context.xml은 스프링이 로딩되면서 읽어 들이는 설정 파일이므로,

주로 이미 만들어진 클래스들을 이용해서 스프링의 빈으로 등록할 때 사용된다.

XML 설정의 경우

id가 hikariConfig인 빈 태그 안에 jdbcUrl 부분에는 내가 만든 스키마의 이름(book_ex)을 명시했고,

username의 value 값은 mysql 계정 아이디 그리고 password의 value 값에는 계정의 패스워드를 입력해주면 된다.

 

스프링 처리 구조

스프링이 시작되면 root-context.xml을 읽고 이런 구조로 처리가 된다.

먼저 컨텍스트 안에 hikariConfig 객체가 빈으로 등록된다.

그리고 DataSource가 빈으로 등록될 때, 생성자로 hikariConfig 빈이 주입이 된다.

 

XML 파일의 수정을 마쳤다면 maven - Update Project를 꼭 해주자

그 후 테스트 코드로 스프링에 빈으로 등록된 DataSource를 이용해서

Connection을 제대로 처리할 수 있는지를 확인한다.

 

테스트 코드

테스트 코드를 실행해보면 내부적으로 HikariCP가 시작되고 종료되는 로그를 확인할 수 있다.

실행 성공

 

'Study > Spring' 카테고리의 다른 글

[Spring] MyBatis와 스프링 연동하기  (1) 2020.07.07
[Spring] 스프링 어노테이션 기능 정리  (1) 2020.07.04
[Spring] Lombok 라이브러리 설치 방법 정리  (1) 2020.07.03
[Spring] 스프링 Java 설정 정리  (6) 2020.07.03
[Spring] 스프링 프로젝트 초기 설정하기  (5) 2020.07.02
    'Study/Spring' 카테고리의 다른 글
    • [Spring] MyBatis와 스프링 연동하기
    • [Spring] 스프링 어노테이션 기능 정리
    • [Spring] Lombok 라이브러리 설치 방법 정리
    • [Spring] 스프링 Java 설정 정리
    e.den
    e.den
    문제를 본질적으로 접근하자

    티스토리툴바