728x90
반응형
안녕하세요 이번 글에서는 Mybatis를 사용하기 위해 DB 커넥션 설정을 해보겠습니다.
먼저 아래 디펜던시가 있는지 확인하여 줍시다! ( Boot 프로젝트 생성 시 넣어주면 들어 있습니다. )
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
그다음 application.properties 파일에 아래와 같이 작성하여 줍시다.
( 작성자는 mariaDB 기준으로 작성하였습니다. 본인에 환경에 맞게 구성해 주세요 ^^ )
spring.datasource.driverClassName = org.mariadb.jdbc.Driver
spring.datasource.jdbc-url= jdbc:mariadb://localhost:3306/example
spring.datasource.username=root
spring.datasource.password=example
프로퍼티 파일에 작성한 설정들을 사용하기 위해 DatabaseConfiguration 클래스를 생성하여 줍시다.
@Configuration
public class DatabaseConfiguration {
@Bean
@ConfigurationProperties(prefix = "spring.datasource") // 해당 Bean 이 생성 되면서 해당 프로퍼티에 대한 값을 가져와 사용한다.
public DataSource dataSource(){
return DataSourceBuilder.create().build();
}
}
SqlSessionFactory , SqlSessionTemplate를 만들어 주기 위해 MybatisConfiguration 클래스를 생성하여 줍시다.
@Configuration
/**
* @Mapper(애너테이션)을 이용하여 Mapper Interface를 스프링 빈으로 주입받아 DB에 접근하는 방법
*/
@MapperScan(basePackages = "kr.co.song.spring.mvc.repository") //해당 패키지를 스캔
public class MybatisConfiguration {
@Bean
public SqlSessionFactory sqlSessionFactory(@Autowired DataSource dataSource, ApplicationContext applicationContext) throws Exception{
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); //팩토리 빈 생성
factoryBean.setDataSource(dataSource); //미리 만들어 놓은 DataSource 빈을 주입하여 넣어준다.
factoryBean.setMapperLocations(applicationContext.getResources("classpath:mybatis/sql/*.xml")); //쿼리 실행을 위해 만들어 놓은 해당 위치의 xml 파일을 맵퍼로 설정
SqlSessionFactory factory = factoryBean.getObject();
factory.getConfiguration().setMapUnderscoreToCamelCase(true);
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate(@Autowired SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory); //sqlSessionTemplate 에 만들어 놓은 팩토리 주입
}
}
위 코드까지 작성해요 준 다음 디렉터리 구조를 아래처럼 만들어 주시면 됩니다.
감사합니다 ^^
728x90
반응형
'Spring & Spring Boot' 카테고리의 다른 글
[ Spring-Boot ] JPA 공통 Entity 만들기 (0) | 2021.05.22 |
---|---|
[ Spring-Boot ] @Controller 에서 파라미터 받기 (0) | 2021.05.22 |
[ Spring-Boot ] @ControllerAdice 사용하여 예외처리 하기 2편 (0) | 2021.05.19 |
[ Spring-Boot ] Swagger 사용하기 (0) | 2021.05.19 |
[ Spring-Boot ] Scheduler 사용하기 (0) | 2021.05.19 |