60 lines
2.1 KiB
Java
60 lines
2.1 KiB
Java
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);
|
|
|
|
@Value("${services.repomanager.db.driverClassName}")
|
|
private String driverClassname;
|
|
|
|
@Value("${services.repomanager.db.url}")
|
|
private String URL;
|
|
|
|
@Value("${services.repomanager.db.username}")
|
|
private String username;
|
|
|
|
@Value("${services.repomanager.db.password}")
|
|
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;
|
|
}
|
|
|
|
}
|