# 4 spring boot Maria DB 연결

ChoEunji·2021년 5월 29일
1
post-thumbnail

😊 본 게시글은 김인우님의 스프링 부트 시작하기를 참고해 공부한 내용입니다.

Java -> java11
IDE -> eclipse 3.18
DataBase -> MariaDB


MariaDB가 기본설정으로 설치되어 있다고 가정함

Maria DB 연결

build.gradle

build.gradle dependencies에 추가

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.0'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.1'

gradle 설정 후에는 반드시 refresh를 해야함

application.properties

application.properties.java

spring.datasource.hikari.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.hikari.jdbc-url=jdbc:mariadb://localhost:3306/db이름?characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.hikari.username=user이름
spring.datasource.hikari.password=비밀번호

db이름과, user 이름, 비밀번호를 입력해준다.

configuration 생성

board 패키지 아래에 configuration 패키지 > DatabaseConfiguration 클래스 생성

DatabaseConfiguration.java

package board.configuration;

import javax.sql.DataSource;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
@PropertySource("classpath:/application.properties")
public class DatabaseConfiguration {

    @Bean
    @ConfigurationProperties(prefix="spring.datasource.hikari")
    //@ConfigurationProperties : *.properties, *.yml 파일에 있는 property를 자바 클래스에 값을 가져와서 사용 할 수 있게 해주는 어노테이션
    //@ConfigurationProperties 어노테이션에 prefix(접두어)가 spring.datasource.hikari로 설정되었기 때문에 spring.datasource.hikari로 시작하는 설정을 이용해서 히카리CP의 설정파일을 만든다.
    public HikariConfig hikariConfig() {
        return new HikariConfig();
    }
    
    //앞에서 만든 히카리CP의 설정파일을 이용해서 데이터베이스와 연결하는 데이터 소스를 생성한다. 
    //여기서는 데이터 소스가 정상적으로 생성되었는지 확인하기 위해서 데이터 소스를 출력했다.
    @Bean
    public DataSource dataSource() throws Exception {
        DataSource dataSource = new HikariDataSource(hikariConfig());
        System.out.println(dataSource.toString());
        return dataSource;
    }
}

@PropertySource로 경로를 설정해 아까 적은 application.properties를 사용할 수 있게 해준다. (프로퍼티 설정 주입)
여기서 classpath는 src/main/resources 를 뜻함

Bean?
Spring IoC 컨테이너가 관리하는 자바 객체
일반적으로 Java에서 new로 생성하는 객체가 아닌 Spring에서의 빈은 ApplicationContext가 알고있는 객체, 즉 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다.

클래스에 @Configuration 어노테이션 + @Bean 어노테이션 = 직접 빈 정의 가능


여기까지 마무리 한 후 실행시켰을 때
HikariDataSource 문구가 나오면 DB 연결은 성공한 것! 👏👏

profile
백엔드 개발자 취준생 / 2020.12 ~ 1일 1커밋중

0개의 댓글