Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package io.github.bibekshakya35.ehealth.configuration; import io.github.bibekshakya35.ehealth.DAO.genericdao.HibernateDAO; import io.github.bibekshakya35.ehealth.DAO.genericdao.IGenericDao; import java.util.Properties; import org.apache.commons.dbcp2.BasicDataSource; 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.orm.hibernate4.HibernateTransactionManager; import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; /** * * @author Bibek Shakya */ @Configuration @EnableTransactionManagement @EnableWebMvc @ComponentScan(basePackages = "io.github.bibekshakya35.ehealth") public class EhealthCofiguration { @Bean(name = "dataSource") public javax.sql.DataSource getDataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("org.postgresql.Driver"); dataSource.setUrl("jdbc:postgresql://localhost:5432/ehealth"); dataSource.setUsername("test"); dataSource.setPassword("test123"); return dataSource; } @Autowired @Bean public SessionFactory sessionFactory(javax.sql.DataSource dataSource) { LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource); sessionBuilder.scanPackages("io.github.bibekshakya35.ehealth.model"); sessionBuilder.addProperties(getHibernateProperties()); return sessionBuilder.buildSessionFactory(); } private Properties getHibernateProperties() { Properties properties = new Properties(); properties.put("hibernate.show_sql", "true"); properties.put("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect"); properties.put("hibernate.hbm2ddl.auto", "update"); return properties; } @Autowired @Bean(name = "transactionManager") public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) { HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory); return transactionManager; } }