|
@@ -1,114 +1,116 @@
|
|
|
-package io.github.pnoker.gateway.config;
|
|
|
-
|
|
|
-import com.zaxxer.hikari.HikariConfig;
|
|
|
-import com.zaxxer.hikari.HikariDataSource;
|
|
|
-import io.github.pnoker.gateway.dbdao.DBMgrProxy;
|
|
|
-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.context.annotation.Bean;
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
-import org.springframework.context.annotation.PropertySource;
|
|
|
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|
|
-
|
|
|
-import javax.annotation.PostConstruct;
|
|
|
-import javax.sql.DataSource;
|
|
|
-
|
|
|
-@Configuration
|
|
|
-@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "mainSqlSessionTemplate")
|
|
|
-public class MainSourceConfiguration {
|
|
|
- @Value("${spring.datasource.driver-class-name:}")
|
|
|
- private String driveClass = "org.postgresql.Driver";
|
|
|
-
|
|
|
- @Value("${spring.datasource.jdbc-url:}")
|
|
|
- private String url = "";
|
|
|
-
|
|
|
- @Value("${spring.datasource.username:}")
|
|
|
- private String username = "";
|
|
|
-
|
|
|
- @Value("${spring.datasource.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 = "mainDatasource")
|
|
|
- //@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("mainSqlSessionFactory")
|
|
|
- public SqlSessionFactory mainSqlSessionFactoryBean(@Qualifier("mainDatasource") 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("mainSqlSessionTemplate")
|
|
|
- public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("mainSqlSessionFactory") SqlSessionFactory sessionFactory) {
|
|
|
- return new SqlSessionTemplate(sessionFactory);
|
|
|
- }
|
|
|
-
|
|
|
- @Bean(name = "mainDbTransactionManager")
|
|
|
- public DataSourceTransactionManager mainDbTransactionManager(@Qualifier("mainDatasource") 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();
|
|
|
- }
|
|
|
-}
|
|
|
+//package io.github.pnoker.gateway.config;
|
|
|
+//
|
|
|
+//import com.zaxxer.hikari.HikariConfig;
|
|
|
+//import com.zaxxer.hikari.HikariDataSource;
|
|
|
+//import io.github.pnoker.gateway.dbdao.DBMgrProxy;
|
|
|
+//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.context.annotation.PropertySource;
|
|
|
+//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|
|
+//
|
|
|
+//import javax.annotation.PostConstruct;
|
|
|
+//import javax.sql.DataSource;
|
|
|
+//
|
|
|
+//@Configuration
|
|
|
+//@MapperScan(basePackages = "io.github.pnoker.gateway.dbdao.mapper", sqlSessionTemplateRef = "mainSqlSessionTemplate")
|
|
|
+//public class MainSourceConfiguration {
|
|
|
+// @Value("${spring.datasource.driver-class-name:}")
|
|
|
+// private String driveClass = "org.postgresql.Driver";
|
|
|
+//
|
|
|
+// @Value("${spring.datasource.jdbc-url:}")
|
|
|
+// private String url = "";
|
|
|
+//
|
|
|
+// @Value("${spring.datasource.username:}")
|
|
|
+// private String username = "";
|
|
|
+//
|
|
|
+// @Value("${spring.datasource.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 = "mainDatasource")
|
|
|
+// //@ConfigurationProperties(prefix = "spring.datasource.data")
|
|
|
+// @ConditionalOnProperty(name = "datasource.enabled", havingValue = "true")
|
|
|
+// 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("mainSqlSessionFactory")
|
|
|
+// public SqlSessionFactory mainSqlSessionFactoryBean(@Qualifier("mainDatasource") 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("mainSqlSessionTemplate")
|
|
|
+// public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("mainSqlSessionFactory") SqlSessionFactory sessionFactory) {
|
|
|
+// return new SqlSessionTemplate(sessionFactory);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Bean(name = "mainDbTransactionManager")
|
|
|
+// public DataSourceTransactionManager mainDbTransactionManager(@Qualifier("mainDatasource") 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();
|
|
|
+// }
|
|
|
+//}
|