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 |