package com.softarex.chikfila.mainserverapi.config; import javax.inject.Inject; import javax.sql.DataSource; import org.hibernate.SessionFactory; import org.hibernate.jpa.HibernateEntityManagerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.zaxxer.hikari.HikariDataSource; /** * @author Oleg Zhymolokhov (o.zhymolokhov@infostroy.com.ua) */ @EnableJpaRepositories("com.softarex.chikfila.mainserverapi.repositories") @Configuration @EnableTransactionManagement public class DataSourceConfig { @Inject private AppProperties properties; @Bean(name = "dataSource") public DataSource dataSource() { AppProperties.DatabaseProperties dbProps = properties.getDatabaseProperties(); HikariDataSource dataSource = new HikariDataSource(); dataSource.setDriverClassName(org.postgresql.Driver.class.getName()); dataSource.setJdbcUrl("jdbc:postgresql://localhost:5432/" + dbProps.getDbname()); dataSource.setUsername(dbProps.getUsername()); dataSource.setPassword(dbProps.getPassword()); return dataSource; } @Bean public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf){ return hemf.getSessionFactory(); } }