//package io.github.pnoker.gateway.config; // //import com.zaxxer.hikari.HikariConfig; //import com.zaxxer.hikari.HikariDataSource; //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.beans.factory.annotation.Value; //import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; //import org.springframework.jdbc.datasource.DataSourceTransactionManager; // //import javax.annotation.PostConstruct; //import javax.sql.DataSource; // //@Configuration //@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "child3SqlSessionTemplate") //public class Child3SourceConfiguration { // @Value("${spring.datasource.child3pg.driver-class-name:}") // private String driveClass = "org.postgresql.Driver"; // // @Value("${spring.datasource.child3pg.jdbc-url:}") // private String url = ""; // // @Value("${spring.datasource.child3pg.username:}") // private String username = ""; // // @Value("${spring.datasource.child3pg.password:}") // private String password = ""; // // @Value("${spring.datasource.data.maximum-pool-size:200}") // private Integer maxPoolSize; // // @Value("${spring.datasource.data.minimum-idle:1}") // private Integer minIdle; // // @Value("${spring.datasource.data.connection-test-query:}") // private String connectionTestQuery; // // @Value("${spring.datasource.data.max-lifetime:120000}") // private Long maxLifetime; // // @Value("${spring.datasource.data.idle-timeout:30000}") // private Long idleTimeout; // // @Value("${spring.datasource.data.connection-timeout:30000}") // private Long connectionTimeout; // // @Value("${spring.datasource.data.validation-timeout:30000}") // private Long validTimeout; // // @Bean(name = "child3Datasource") // @ConditionalOnProperty(name = "datasource.child3pg.enabled", havingValue = "true") // //@ConfigurationProperties(prefix = "spring.datasource.data") // public DataSource mainDataSource() { // return new HikariDataSource(getConfig()); // //return DataSourceBuilder.create().build(); // //Spring Boot 2.x默认使用HikariCP // } // // private HikariConfig getConfig() { // HikariConfig hikariConfig = new HikariConfig(); // hikariConfig.setDriverClassName(driveClass); // hikariConfig.setJdbcUrl(url); // hikariConfig.setUsername(username); // hikariConfig.setPassword(password); // // hikariConfig.setMaximumPoolSize(maxPoolSize); // hikariConfig.setMinimumIdle(minIdle); // hikariConfig.setConnectionTestQuery(connectionTestQuery); // hikariConfig.setMaxLifetime(maxLifetime); // hikariConfig.setIdleTimeout(idleTimeout); // hikariConfig.setConnectionTimeout(connectionTimeout); // hikariConfig.setValidationTimeout(validTimeout); // return hikariConfig; // } // // @Bean("child3SqlSessionFactory") // public SqlSessionFactory child3SqlSessionFactoryBean(@Qualifier("child3Datasource") DataSource dataSource) throws Exception { // SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); // sessionFactoryBean.setDataSource(dataSource); // // org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); // configuration.setCallSettersOnNulls(true); //数据库中字段值为null时也要求返回 // configuration.setMapUnderscoreToCamelCase(true); //开启驼峰映射 // configuration.setCacheEnabled(false); // sessionFactoryBean.setConfiguration(configuration); // return sessionFactoryBean.getObject(); // } // // @Bean("child3SqlSessionTemplate") // public SqlSessionTemplate child3SqlSessionTemplate(@Qualifier("child3SqlSessionFactory") SqlSessionFactory sessionFactory) { // return new SqlSessionTemplate(sessionFactory); // } // // @Bean(name = "child3DbTransactionManager") // public DataSourceTransactionManager child3DbTransactionManager(@Qualifier("child3Datasource") DataSource dataSource){ // return new DataSourceTransactionManager(dataSource); // } // // @PostConstruct // public void init(){ // GlobalData.getInstance().setPostGisValid("org.postgis.DriverWrapper".equals(driveClass)); // } // @Bean // public DBMgrProxy startDBMgrProxy(){ // DBMgrProxy.getInstance().init(); // return DBMgrProxy.getInstance(); // } //}