그라가승훈
[SpringBoot] - Mybatis 설정 본문
1. DatabaseConfiguration 클래스
src/main/java/baord 패키지 밑에 configuration 패키지 생성 후 DatabaseConfiguration 클래스 생성
@Configuration
@PropertySource("classpath:/application.properties")
public class DatabaseConfiguration {
@Autowired
private ApplicationContext applicationContext;
/**
* hikari 설정
*/
@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
/**
* hikari 설정
*/
@Bean
public DataSource dataSource() throws Exception {
DataSource dataSource = new HikariDataSource(hikariConfig());
System.out.println("dataSource :: " + dataSource);
return dataSource;
}
/**
* mybatis 설정
*/
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/sql-*.xml"));
sqlSessionFactoryBean.setConfiguration(mybatisConfiguration());
return sqlSessionFactoryBean.getObject();
}
/**
* mybatis 설정
*/
@Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
2. application.properties 에 설정 추가
mybatis.configuration.map-underscore-to-camel-case=true
데이터베이스는 일반적으로 스네이크 표기법, 자바는 카멜 표기법 을 사용하므로 매핑해주는 기능 설정 (default = false)
3. 빈 등록하기
앞에서 설정한 mapUnderscoreToCamelCase 를 적용하기 위해 DatabaseConfiguration 클래스에 코드 추가
/**
* mybatis 빈 등록
*/
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration mybatisConfiguration() {
return new org.apache.ibatis.session.Configuration();
}
위 프로퍼티를 설정하지 않아도 아래처럼 세팅해줄 수 있다.
@Bean
public org.apache.ibatis.session.Configuration mybatisConfiguration() {
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setMapUnderscoreToCamelCase(true);
return configuration;
}
'Spring' 카테고리의 다른 글
[SpringBoot] - Swagger 적용 (0) | 2023.10.22 |
---|---|
[SpringBoot] - 파일 업로드와 다운로드 (1) | 2023.10.16 |
[SpringBoot] - @ControllerAdvice 를 이용한 전역 예외처리 (0) | 2023.10.15 |
[SpringBoot] - AOP (2) | 2023.10.15 |
[SpringBoot] - 인터셉터(Interceptor) (0) | 2023.10.15 |