View as "text/plain" | Blame | Last modification | View Log | RSS feed
package com.spice.profitmandi.dao.config;import java.io.IOException;import java.util.Properties;import javax.sql.DataSource;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.Resource;import org.springframework.jdbc.datasource.DriverManagerDataSource;import org.springframework.orm.hibernate5.HibernateTransactionManager;import org.springframework.orm.hibernate5.LocalSessionFactoryBuilder;import org.springframework.transaction.annotation.EnableTransactionManagement;import com.spice.profitmandi.dao.repository.dtr.Mongo;import com.spice.profitmandi.web.config.AppConfig;@Configuration@EnableTransactionManagement@ComponentScan({ "com.spice.profitmandi.*" })public class WebDBContextConfigure{private static final String HIBERNATE_DRIVER_CLASS = "hibernate.driver.class";private static final String HIBERNATE_URL = "hibernate.url";private static final String HIBERNATE_USER_NAME = "hibernate.user.name";private static final String HIBERNATE_PASSWORD = "hibernate.password";private static final String HIBERNATE_DIALECT = "hibernate.dialect";private static final String HIBERNATE_SHOW_SQL = "hibernate.show_sql";private static final String HIBERNATE_FORMAT_SQL = "hibernate.format_sql";private static final String HIBERNATE_JDBC_BATCH_SIZE = "hibernate.jdbc.batch_size";private static final String HIBERNATE_C3P0_MIN_SIZE = "hibernate.c3p0.min_size";private static final String HIBERNATE_C3P0_MAX_SIZE = "hibernate.c3p0.max_size";private static final String HIBERNATE_C3P0_TIMEOUT= "hibernate.c3p0.timeout";private static final String HIBERNATE_C3P0_MAX_STATEMENTS = "hibernate.c3p0.max_statements";private static final String HIBERNATE_C3P0_IDLE_TEST_PERIOD = "hibernate.c3p0.idle_test_period";private Resource resource = AppConfig.getResource();@Bean(name = "dataSource")public DataSource dataSource() {Properties properties = new Properties();try {properties.load(resource.getInputStream());} catch (IOException e) {e.printStackTrace();}DriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClassName(properties.getProperty(HIBERNATE_DRIVER_CLASS));dataSource.setUrl(properties.getProperty(HIBERNATE_URL));dataSource.setUsername(properties.getProperty(HIBERNATE_USER_NAME));dataSource.setPassword(properties.getProperty(HIBERNATE_PASSWORD));return dataSource;}@Beanpublic Properties getHibernateProperties() {Properties dbProperties = new Properties();Properties properties = new Properties();try {properties.load(resource.getInputStream());} catch (IOException e) {e.printStackTrace();}dbProperties.put(HIBERNATE_DIALECT, properties.getProperty(HIBERNATE_DIALECT));dbProperties.put(HIBERNATE_SHOW_SQL, properties.getProperty(HIBERNATE_SHOW_SQL));dbProperties.put(HIBERNATE_FORMAT_SQL, properties.getProperty(HIBERNATE_FORMAT_SQL));dbProperties.put(HIBERNATE_JDBC_BATCH_SIZE, properties.getProperty(HIBERNATE_JDBC_BATCH_SIZE));dbProperties.put(HIBERNATE_C3P0_MIN_SIZE, properties.getProperty(HIBERNATE_C3P0_MIN_SIZE));dbProperties.put(HIBERNATE_C3P0_MAX_SIZE, properties.getProperty(HIBERNATE_C3P0_MAX_SIZE));dbProperties.put(HIBERNATE_C3P0_TIMEOUT, properties.getProperty(HIBERNATE_C3P0_TIMEOUT));dbProperties.put(HIBERNATE_C3P0_MAX_STATEMENTS, properties.getProperty(HIBERNATE_C3P0_MAX_STATEMENTS));dbProperties.put(HIBERNATE_C3P0_IDLE_TEST_PERIOD, properties.getProperty(HIBERNATE_C3P0_IDLE_TEST_PERIOD));return dbProperties;}@Autowired@Bean(name = "sessionFactory")public SessionFactory getSessionFactory(DataSource dataSource) {LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);sessionBuilder.addProperties(getHibernateProperties());sessionBuilder.scanPackages("com.spice.profitmandi.dao.*");return sessionBuilder.buildSessionFactory();}@Autowired@Bean(name = "transactionManager")public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory);return transactionManager;}@Autowired@Beanpublic Mongo mongoClient(SessionFactory sessionFactory) {Properties properties = new Properties();try {properties.load(resource.getInputStream());} catch (IOException e) {e.printStackTrace();}return new Mongo(properties.getProperty("mongo.host"), properties.getProperty("content.mongo.host"));}}