JAVA/JAVA__Framework-Springboot

Spirngboot - MyBatis 연동

말하는감자 2019. 7. 25. 00:39
package board.configuration;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
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 {
	
	@Autowired
	private ApplicationContext applicationContext;
	
	@Bean
	@ConfigurationProperties(prefix="spring.datasource.hikari")
	public HikariConfig hikariConfig() {
		return new HikariConfig();
	}
	
	@Bean
	public DataSource dataSource() throws Exception{
		return new HikariDataSource(hikariConfig());
	}
	
	@Bean
	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
		
		//스프링-마이바티스에서는 SqlSessionFactory를 생성하기 위해서 SqlSessionFactoryBean을 사용한다
		//만약 스프링이 아닌 마이바티스를 단독으로 사용할 경우에는 SqlSessionFactoryBuilder를 사용한다
		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
		
		//앞에서 만든 데이터소스를 설정
		sqlSessionFactoryBean.setDataSource(dataSource);
		
		//마이바티스 매퍼 파일의 위치를 설정한다
        	//패턴을 기반으로 한번에 등록하는 것이 좋다
		sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/sql-*.xml"));
		
		return sqlSessionFactoryBean.getObject();
	}
	
	public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
}

 

 

 

 

'JAVA > JAVA__Framework-Springboot' 카테고리의 다른 글

테스트용 게시판 생성  (0) 2019.07.25
mapper classpath  (0) 2019.07.25
히카리CP  (0) 2019.07.25
MVC  (0) 2019.07.24
spring project  (0) 2019.07.24