您的位置:首页 > 编程语言 > Java开发

spring boot mybatis

2016-02-01 17:16 615 查看
package com.ielpm.pay.web.mybatis;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import com.alibaba.druid.pool.DruidDataSourceFactory;

@Configuration
@PropertySource("classpath:jdbc.properties")
@MapperScan(basePackages="com.ielpm.pay.web.dao", sqlSessionFactoryRef = "sqlSessionFactory")
public class DatasourceConfig {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
Map configMap = new HashMap();
configMap.put("driverClassName", env.getProperty("jdbc.driverClassName"));
configMap.put("url", env.getProperty("jdbc.url"));
configMap.put("username", env.getProperty("jdbc.username"));
configMap.put("password", env.getProperty("jdbc.password"));
configMap.put("filters", env.getProperty("jdbc.filters"));
configMap.put("initialSize", env.getProperty("jdbc.initialSize"));
configMap.put("maxActive", env.getProperty("jdbc.maxActive"));
configMap.put("maxWait", env.getProperty("jdbc.maxWait"));
configMap.put("timeBetweenEvictionRunsMillis", env.getProperty("jdbc.timeBetweenEvictionRunsMillis"));
configMap.put("minEvictableIdleTimeMillis", env.getProperty("jdbc.minEvictableIdleTimeMillis"));
configMap.put("validationQuery", env.getProperty("jdbc.validationQuery"));
configMap.put("testWhileIdle", env.getProperty("jdbc.testWhileIdle"));
configMap.put("testOnBorrow", env.getProperty("jdbc.testOnBorrow"));
configMap.put("testOnReturn", env.getProperty("jdbc.testOnReturn"));
configMap.put("poolPreparedStatements", env.getProperty("jdbc.poolPreparedStatements"));
configMap.put("maxPoolPreparedStatementPerConnectionSize", env.getProperty("jdbc.maxPoolPreparedStatementPerConnectionSize"));
try {
return DruidDataSourceFactory.createDataSource(configMap);
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
return null;
}
@Bean
@ConditionalOnMissingBean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
@Bean
@ConditionalOnMissingBean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage("com.ielpm.pay.web.model");
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sessionFactory.setMapperLocations(resolver.getResources("classpath:com/ielpm/pay/web/dao/mapping/*.xml"));
return sessionFactory.getObject();
}

//    @Bean
//	public SqlSessionFactory sqlSessionFactory() throws IOException{
//		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
//		bean.setDataSource(dataSource());
//		PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//		bean.setMapperLocations(resolver.getResources("classpath:com/ielpm/pay/web/dao/mapping/*.xml"));
//		SqlSessionFactory sqlSessionFactory = null;
//         try {
//                sqlSessionFactory = bean.getObject();
//         }catch (Exception e) {
//                e.printStackTrace();
//                System.exit(0);
//         }
//         return sqlSessionFactory;
//	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: