😊 본 게시글은 김인우님의 스프링 부트 시작하기를 참고해 공부한 내용입니다.
Java -> java11
IDE -> eclipse 3.18
DataBase -> MariaDB
MariaDB가 기본설정으로 설치되어 있다고 가정함
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.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 이름, 비밀번호를 입력해준다.
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 연결은 성공한 것! 👏👏