<aside> 🧙‍♂️ 궁금한점

  1. application.yml에 mybatis 설정은 어디까지 할 수 있는가?
  2. 자세한 설정은 Mybatis-config.java에서 하는가?
  3. DataSourceConfig의 정확한 역할이 무엇인가?

</aside>

  1. 답변
    1. mapper.xml 위치
  2. 답변
    1. XML 또는 config로 설정할 수 있다.
      1. 여기서는 config로 설정했다.
  3. DataSourceConfig
    1. DB와 MyBatis를 연결시켜주기 위함이다.
    2. application.yml에 있는 spring.datasource 설정을 가져오고 SqlSessionFactory에 넣어서 연결 설정을 해준다.

application.yml 👇

mybatis:
  type-aliases-package: com.example.miniminishop
  mapper-locations: ./mybatis/mapper/miniminishop.xml

Mybatis-config.xml 👇

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "<http://mybatis.org/dtd/mybatis-3-config.dtd>">

<configuration>

    <!-- 별칭 -->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <typeAliases>
<!--        <typeAlias type="com.wizard.pracmybatis.domain.Board" alias="Board"/>-->
        <typeAlias type="com.wizard.pracmybatis.domain.Employee" alias="Employee"/>
        <typeAlias type="com.wizard.pracmybatis.domain.Company" alias="Company"/>
        <typeAlias type="com.wizard.pracmybatis.domain.Department" alias="Department"/>
        <typeAlias type="com.wizard.pracmybatis.domain.Rank" alias="Rank"/>
        <typeAlias type="com.wizard.pracmybatis.dto.EmployeeCompanyDto" alias="EmployeeCompanyDto"/>
        <typeAlias type="com.wizard.pracmybatis.dto.EmpComDepDto" alias="EmpComDepDto"/>
    </typeAliases>

<!--    <typeHandlers>-->
<!--        <typeHandler handler="com.sample.mybatis.enums.UserType$TypeHandler"/>-->
<!--    </typeHandlers>-->

</configuration>

추가적인 설정

DataSourceConfig.java 👇

package com.wizard.pracmybatis.configuration;

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

import javax.sql.DataSource;

@Configuration
public class DataSourceConfiguration {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create().build();
    }
}

MyBatisConfiguration 👇