Facebook
From Burly Sloth, 6 Years ago, written in Java.
Embed
Download Paste or View Raw
Hits: 248
  1. package pl.nakiel.testowaspring.configuration;
  2.  
  3. import java.util.Properties;
  4.  
  5. import javax.sql.DataSource;
  6.  
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import org.springframework.context.annotation.Profile;
  10. import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  11. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  12. import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
  13. import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
  14. import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
  15.  
  16.  
  17. @Configuration
  18. @EnableJpaRepositories(basePackages="pl.nakiel.testowaspring.repository")
  19. public class DatabaseConfig {
  20.         @Bean
  21.         @Profile("dev")
  22.         public DataSource h2DataSource(){
  23.                 EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
  24.                
  25.                 return builder.setType(EmbeddedDatabaseType.H2).build();
  26.         }
  27.         @Bean
  28.         @Profile("prod")
  29.         public DataSource mysqlDataSource(){
  30.                 DriverManagerDataSource dataSource = new DriverManagerDataSource();
  31.                 dataSource.setUrl("jdbc:mysql://localhost:3306/example");
  32.                 dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  33.                 dataSource.setUsername("root");
  34.                 dataSource.setPassword("");
  35.                 return dataSource;
  36.         }
  37.        
  38.         @Bean
  39.         @Profile("dev")
  40.         public LocalSessionFactoryBean h2sessionFactory(DataSource dataSource){
  41.                 LocalSessionFactoryBean sfb = new LocalSessionFactoryBean();
  42.                 sfb.setDataSource(dataSource);
  43.                 sfb.setPackagesToScan("pl.nakiel.testowaspring.domain");
  44.                 Properties properties = new Properties();
  45.                
  46.                 properties.setProperty("dialect", "org.hibernate.dialect.H2Dialect");
  47.                 properties.setProperty("show_sql", "true");
  48.                 sfb.setHibernateProperties(properties);
  49.                 return sfb;
  50.         }
  51.        
  52.         @Bean
  53.         @Profile("prod")
  54.         public LocalSessionFactoryBean mySQLsessionFactory(DataSource dataSource){
  55.                 LocalSessionFactoryBean sfb = new LocalSessionFactoryBean();
  56.                 sfb.setDataSource(dataSource);
  57.                 sfb.setPackagesToScan("pl.nakiel.testowaspring.domain");
  58.                 Properties properties = new Properties();
  59.                
  60.                 properties.setProperty("dialect", "org.hibernate.dialect.MySQLDialect");
  61.                 properties.setProperty("show_sql", "true");
  62.                 sfb.setHibernateProperties(properties);
  63.                 return sfb;
  64.         }
  65.        
  66. }
  67.