STS MariaDB ์—ฐ๋™ - STS MariaDB yeondong

๐Ÿ˜Š ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ ๊น€์ธ์šฐ๋‹˜์˜ ์Šคํ”„๋ง ๋ถ€ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

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๋ฅผ ํ•ด์•ผํ•จ

STS MariaDB ์—ฐ๋™ - STS MariaDB yeondong

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 ํด๋ž˜์Šค ์ƒ์„ฑ

STS MariaDB ์—ฐ๋™ - STS MariaDB yeondong

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 ์–ด๋…ธํ…Œ์ด์…˜ = ์ง์ ‘ ๋นˆ ์ •์˜ ๊ฐ€๋Šฅ


์—ฌ๊ธฐ๊นŒ์ง€ ๋งˆ๋ฌด๋ฆฌ ํ•œ ํ›„ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ

STS MariaDB ์—ฐ๋™ - STS MariaDB yeondong
HikariDataSource ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋ฉด DB ์—ฐ๊ฒฐ์€ ์„ฑ๊ณตํ•œ ๊ฒƒ! ๐Ÿ‘๐Ÿ‘