Commit 2cecb92b authored by suhuiguang's avatar suhuiguang

1.解决jg服务不打印mytais sql执行日志及数据库连接池读取配置文件非写死

parent 7ec4bc02
package com.yeejoin.amos.boot.module.jg.biz.config; package com.yeejoin.amos.boot.module.jg.biz.config;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
...@@ -7,17 +8,17 @@ import com.yeejoin.amos.boot.biz.config.MetaHandler; ...@@ -7,17 +8,17 @@ import com.yeejoin.amos.boot.biz.config.MetaHandler;
import com.yeejoin.amos.boot.biz.config.MybatisSqlInjector; import com.yeejoin.amos.boot.biz.config.MybatisSqlInjector;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.DataSourceProxy;
import javax.sql.DataSource;
import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver;
import javax.sql.DataSource;
/** /**
* 数据源代理 * 数据源代理
* *
...@@ -26,36 +27,30 @@ import org.springframework.core.io.support.ResourcePatternResolver; ...@@ -26,36 +27,30 @@ import org.springframework.core.io.support.ResourcePatternResolver;
@Configuration @Configuration
public class DataSourceConfiguration { public class DataSourceConfiguration {
@Autowired
private DataSourceProperties dsp;
@Bean(name = "hikariDataSource")
public HikariDataSource hikariDataSource() {
HikariDataSource hds = new HikariDataSource();
hds.setSchema(dsp.getSchema().get(0));
hds.setUsername(dsp.getUsername());
hds.setPassword(dsp.getPassword());
hds.setJdbcUrl(dsp.getUrl());
hds.setDriverClassName(dsp.getDriverClassName());
hds.setConnectionTimeout(3000);
hds.setMaximumPoolSize(30);
hds.setMinimumIdle(10);
return hds;
}
@Primary
@Bean("dataSource") @Bean("dataSource")
public DataSourceProxy dataSourceProxy(DataSource hikariDataSource) { public DataSourceProxy dataSourceProxy(HikariDataSourceProperties hikariDataSourceProperties, DataSourceProperties dataSourceProperties) {
return new DataSourceProxy(hikariDataSource); HikariDataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
dataSource.setMaximumPoolSize(hikariDataSourceProperties.getMaximumPoolSize());
dataSource.setMinimumIdle(hikariDataSourceProperties.getMinimumIdle());
dataSource.setMaxLifetime(hikariDataSourceProperties.getMaxLifetime());
dataSource.setPoolName(hikariDataSourceProperties.getPoolName());
dataSource.setConnectionTestQuery(hikariDataSourceProperties.getConnectionTestQuery());
dataSource.setIdleTimeout(hikariDataSourceProperties.getIdleTimeout());
dataSource.setConnectionTimeout(hikariDataSourceProperties.getConnectionTimeout());
dataSource.setIdleTimeout(hikariDataSourceProperties.getIdleTimeout());
dataSource.setConnectionInitSql(hikariDataSourceProperties.getConnectionInitSql());
return new DataSourceProxy(dataSource);
} }
@Bean(name = "sqlSessionFactory") @Bean(name = "sqlSessionFactory")
@Autowired @Autowired
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSourceProxy, PaginationInterceptor paginationInterceptor, MetaHandler metaHandler) throws Exception { public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSourceProxy, PaginationInterceptor paginationInterceptor, MetaHandler metaHandler, MybatisPlusProperties mybatisPlusProperties) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean(); MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSourceProxy); bean.setDataSource(dataSourceProxy);
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
bean.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml")); bean.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml"));
bean.setConfigurationProperties(mybatisPlusProperties.getConfigurationProperties());
GlobalConfig globalConfig = new GlobalConfig(); GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setSqlInjector(new MybatisSqlInjector()); globalConfig.setSqlInjector(new MybatisSqlInjector());
globalConfig.setMetaObjectHandler(metaHandler); globalConfig.setMetaObjectHandler(metaHandler);
......
package com.yeejoin.amos.boot.module.jg.biz.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "spring.datasource.hikari")
@Data
public class HikariDataSourceProperties {
private int maximumPoolSize;
private int minimumIdle;
private boolean autoCommit;
private long idleTimeout;
private String poolName;
private long maxLifetime;
private long connectionTimeout;
private String connectionTestQuery;
private long validationTimeout;
private String connectionInitSql;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment