uoa-repository-manager-service/src/main/java/eu/dnetlib/repo/manager/config/DatasourceConfiguration.java

60 lines
2.1 KiB
Java
Raw Normal View History

2019-12-18 12:09:03 +01:00
package eu.dnetlib.repo.manager.config;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
public class DatasourceConfiguration {
private static Logger LOGGER = Logger.getLogger(DatasourceConfiguration.class);
2021-10-07 14:49:49 +02:00
@Value("${services.repomanager.db.driverClassName}")
2019-12-18 12:09:03 +01:00
private String driverClassname;
2021-10-07 14:49:49 +02:00
@Value("${services.repomanager.db.url}")
2019-12-18 12:09:03 +01:00
private String URL;
2021-10-07 14:49:49 +02:00
@Value("${services.repomanager.db.username}")
2019-12-18 12:09:03 +01:00
private String username;
2021-10-07 14:49:49 +02:00
@Value("${services.repomanager.db.password}")
2019-12-18 12:09:03 +01:00
private String password;
@Bean
public BasicDataSource dataSource(){
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName(driverClassname);
basicDataSource.setUrl(URL);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
basicDataSource.setMaxIdle(10);
basicDataSource.setMaxActive(100);
basicDataSource.setMaxWait(1000);
basicDataSource.setValidationQuery("SELECT 1;");
basicDataSource.setTestOnBorrow(true);
basicDataSource.setTestOnReturn(true);
basicDataSource.setTestWhileIdle(true);
basicDataSource.setTimeBetweenEvictionRunsMillis(1200000);
basicDataSource.setMinEvictableIdleTimeMillis(1800000);
basicDataSource.setMinEvictableIdleTimeMillis(5);
basicDataSource.setPoolPreparedStatements(true);
basicDataSource.setDefaultAutoCommit(true);
return basicDataSource;
}
@Bean
public DataSourceTransactionManager txManager(){
DataSourceTransactionManager txManager = new DataSourceTransactionManager();
txManager.setDataSource(dataSource());
return txManager;
}
}