
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.common.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages="com.takensoft.*.*.dao, com.takensoft.*.*.*.dao", sqlSessionFactoryRef = "cmsSqlSessionFactory")
public class CmsDataSourceConfig {
@Primary
@Bean(name = "cmsDataSource")
@ConfigurationProperties(prefix = "spring.cms.datasource")
public DataSource cmsDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "cmsSqlSessionFactory")
public SqlSessionFactory cmsSqlSessionFactory(@Qualifier("cmsDataSource") DataSource cmsDataSource,
ApplicationContext applicationContext) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(cmsDataSource);
sqlSessionFactoryBean.setTypeAliasesPackage("com.takensoft.**.**.vo, com.takensoft.**.**.dto, com.takensoft.common");
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:mybatis/mapper/**/*-SQL.xml"));
// MyBatis Configuration 설정 추가
org.apache.ibatis.session.Configuration myBatisConfig = new org.apache.ibatis.session.Configuration();
myBatisConfig.setCacheEnabled(true);
myBatisConfig.setLazyLoadingEnabled(false);
myBatisConfig.setMultipleResultSetsEnabled(true);
myBatisConfig.setUseColumnLabel(true);
myBatisConfig.setUseGeneratedKeys(false);
myBatisConfig.setDefaultExecutorType(org.apache.ibatis.session.ExecutorType.SIMPLE);
myBatisConfig.setDefaultStatementTimeout(25000);
myBatisConfig.setCallSettersOnNulls(true);
myBatisConfig.setMapUnderscoreToCamelCase(true);
sqlSessionFactoryBean.setConfiguration(myBatisConfig);
return sqlSessionFactoryBean.getObject();
}
@Primary
@Bean(name = "firstSessionTemplate")
public SqlSessionTemplate firstSqlSessionTemplate(@Qualifier("cmsSqlSessionFactory") SqlSessionFactory cmsSqlSessionFactory) {
return new SqlSessionTemplate(cmsSqlSessionFactory);
}
}