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; // } }
相关文章推荐
- java.lang.RuntimeException:Unable to start activity ComponentInfo{com.meizu.beautify/com.my.viewc.Ma
- 深入理解Java遗传算法
- Java-Iterator(迭代器)接口和泛型
- spring自定义异常处理
- JVM 内存基础概念之程序计数器与 Java 虚拟机栈和本地方法栈
- Java 序列化与反序列化
- CountDownLatch、CyclicBarrier和Semaphore区别
- java特种兵读书笔记(5-2)——并发之线程安全
- Element 'beans' cannot have character [children], because the type's content type is element-only
- Java实现排队论的原理
- springmvc(十一)post乱码
- springmvc(十)springmvc和struts2的区别
- JDK的bin目录下那些常见工具使用集锦
- Java动态代理的实现机制
- 【java基础】Minor GC、Major GC和Full GC之间的区别
- Struts2--标签
- JAVA使用commos-fileupload实现文件上传与下载实例解析
- Java 反射使用
- Can I create an array whose component type is a concrete parameterized type? 我可以创建一个泛型数组嘛?
- Spring(AbstractRoutingDataSource)实现动态数据源切换--转载